寻求Azure ADF、TSI及流分析作业名称可用性查询的API/文档
检查Azure Data Factory、Time Series Insights和流分析作业的资源名称可用性
我帮你整理了这三个服务对应的名称可用性检查方案,和你用Key Vault的方式类似,分为REST API和Node.js SDK实现两部分:
一、REST API 端点(和Key Vault的API结构一致)
每个服务都提供了订阅级的名称检查API,请求和响应格式和Key Vault的checkNameAvailability几乎相同:
1. Azure Data Factory
- 请求方法:
POST - 端点:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DataFactory/checkNameAvailability?api-version=2018-06-01 - 请求体示例:
{ "name": "你的ADF实例名称", "type": "Microsoft.DataFactory/factories" }
- 响应会返回
nameAvailable(布尔值)和message(名称不可用时的原因说明)。
2. Azure Time Series Insights (TSI) 环境
- 请求方法:
POST - 端点:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.TimeSeriesInsights/checkNameAvailability?api-version=2020-05-15 - 请求体示例:
{ "name": "你的TSI环境名称", "type": "Microsoft.TimeSeriesInsights/environments" }
3. Azure 流分析作业
- 请求方法:
POST - 端点:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.StreamAnalytics/checkNameAvailability?api-version=2020-03-01 - 请求体示例:
{ "name": "你的流分析作业名称", "type": "Microsoft.StreamAnalytics/streamingJobs" }
二、Node.js SDK 实现(适配你现有的代码风格)
你提到的azure-arm-datafactory、azure-arm-streamanalytics这些旧版管理库确实没有直接封装名称检查方法,但它们都继承自ServiceClient,可以通过底层的sendRequest方法直接调用上面的REST API,和你用Key Vault的逻辑保持一致:
Azure Data Factory 示例
import DataFactoryManagementClient from 'azure-arm-datafactory'; async function checkAdfNameAvailability(credentials, subscriptionId, adfName) { const client = new DataFactoryManagementClient(credentials, subscriptionId); const request = { method: 'POST', path: `/subscriptions/${subscriptionId}/providers/Microsoft.DataFactory/checkNameAvailability?api-version=2018-06-01`, body: { name: adfName, type: 'Microsoft.DataFactory/factories' } }; const result = await client.sendRequest(request); console.log(result.nameAvailable); return result.nameAvailable; }
Azure Time Series Insights 示例
import TimeSeriesInsightsManagementClient from 'azure-arm-timeseriesinsights'; async function checkTsiNameAvailability(credentials, subscriptionId, tsiName) { const client = new TimeSeriesInsightsManagementClient(credentials, subscriptionId); const request = { method: 'POST', path: `/subscriptions/${subscriptionId}/providers/Microsoft.TimeSeriesInsights/checkNameAvailability?api-version=2020-05-15`, body: { name: tsiName, type: 'Microsoft.TimeSeriesInsights/environments' } }; const result = await client.sendRequest(request); console.log(result.nameAvailable); return result.nameAvailable; }
Azure 流分析作业示例
import StreamAnalyticsManagementClient from 'azure-arm-streamanalytics'; async function checkStreamAnalyticsNameAvailability(credentials, subscriptionId, jobName) { const client = new StreamAnalyticsManagementClient(credentials, subscriptionId); const request = { method: 'POST', path: `/subscriptions/${subscriptionId}/providers/Microsoft.StreamAnalytics/checkNameAvailability?api-version=2020-03-01`, body: { name: jobName, type: 'Microsoft.StreamAnalytics/streamingJobs' } }; const result = await client.sendRequest(request); console.log(result.nameAvailable); return result.nameAvailable; }
注意事项
- 确保使用的
api-version是对应服务的最新稳定版本,避免兼容性问题 - 请求体中的
type参数必须严格匹配上面示例中的值,否则会返回错误 - 你的身份验证凭据(
credentials)需要有订阅级的Microsoft.Resources/checkNameAvailability权限
内容的提问来源于stack exchange,提问作者kalyan kumar
相关产品推荐
相关产品推荐

