如何使用Azure RM API检测子域名是否可用?
Azure RM中子域名可用性检测的替代方案
我太懂这种找不到对应API的郁闷了!旧版Azure API里那个HostedServices.CheckNameAvailabilityAsync用起来确实顺手,切换到Azure RM之后突然没了直接对应的方法,确实让人挠头。不过别担心,咱们有完美的替代方案能实现一模一样的功能。
在Azure RM的资源模型里,子域名(比如云服务的子域名)的可用性检测,其实可以通过对应资源类型的名称可用性检查接口来实现,以云服务为例,代码示例如下:
using Azure; using Azure.ResourceManager; using Azure.ResourceManager.Compute; using Azure.ResourceManager.Compute.Models; public async Task<bool> CheckCloudServiceSubdomainAvailabilityAsync(ArmClient client, string subscriptionId, string domainName) { // 获取订阅资源 var subscriptionResource = await client.GetSubscriptionResource( new ResourceIdentifier($"/subscriptions/{subscriptionId}")).GetAsync(); // 构建名称检查请求内容 var checkContent = new CloudServiceNameAvailabilityContent(domainName); // 调用名称可用性检查接口 var response = await subscriptionResource.CheckCloudServiceNameAvailabilityAsync(checkContent); // 返回是否可用(注意处理null的情况) return response.Value.IsAvailable.GetValueOrDefault(false); }
额外说明:
- 要使用这段代码,你需要先引用最新版的
Azure.ResourceManager.ComputeNuGet包(建议版本≥1.0.0),这是Azure官方推荐的新一代管理库 - 如果是检测其他资源类型的子域名(比如App Service、存储账户),每个资源类型都有对应的名称检查方法:
- App Service可以用
WebSiteNameAvailabilityContent和CheckWebSiteNameAvailabilityAsync方法 - 存储账户可以用
StorageAccountNameAvailabilityContent和CheckStorageAccountNameAvailabilityAsync方法
- App Service可以用
- 调用这些接口需要对应的权限,比如云服务的检查需要
Microsoft.Compute/cloudServices/checkNameAvailability/action的权限,确保你的服务主体或用户账号拥有该权限
内容的提问来源于stack exchange,提问作者BrainSlugs83
相关产品推荐
相关产品推荐

