You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform:无需应用服务获取自定义域名验证ID

关于Azure自定义域验证ID的获取问题

首先明确结论:无法在没有对应App Service(或其他支持自定义域的Azure服务,如Function App、Static Web App)的情况下,从订阅级别获取自定义域验证ID,Terraform也没有对应的实现方式。

原因很简单:自定义域验证ID(即DNS记录里asuid对应的目标值)是绑定到具体服务实例的专属标识,Azure通过这个ID确认你配置的DNS记录指向某个特定服务实例,而非整个订阅。没有服务实例的话,这个ID根本不存在——它本质是服务实例的属性之一,而非订阅的全局资源。

在Terraform里,你只能通过对应的服务资源(比如azurerm_windows_web_app、azurerm_function_app等)的custom_domain_verification_id属性获取这个值。如果需要同步配置DNS记录和部署服务,可以利用Terraform的资源依赖关系,先定义服务资源,再引用它的验证ID创建DNS记录,示例代码如下:

# 创建目标App Service实例
resource "azurerm_windows_web_app" "myappservice" {
  name                = "my-demo-app"
  resource_group_name = azurerm_resource_group.demo_rg.name
  location            = azurerm_resource_group.demo_rg.location
  service_plan_id     = azurerm_app_service_plan.demo_plan.id
}

# 配置asuid类型的CNAME记录,引用App Service的验证ID
resource "azurerm_dns_cname_record" "custom_domain_verify" {
  name                = "asuid"
  zone_name           = azurerm_dns_zone.demo_zone.name
  resource_group_name = azurerm_resource_group.demo_rg.name
  ttl                 = 300
  record              = azurerm_windows_web_app.myappservice.custom_domain_verification_id
}

这种方式会让Terraform自动处理资源创建顺序:先完成App Service的创建,拿到验证ID后再创建DNS记录,完全符合Azure的验证逻辑。

内容的提问来源于stack exchange,提问作者Beakie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:16:30