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

Terraform 1.8.0中azapi_resource创建Azure托管证书失败求助

解决Terraform创建Azure托管证书的body参数错误问题

核心问题修复

你遇到的错误根源是azapi_resource的body参数要求接收Terraform原生的map/对象类型,而非通过jsonencode转换后的JSON字符串。直接移除jsonencode函数,传入HCL对象即可解决类型不匹配问题。

同时,创建基于Key Vault的托管证书时,必须同时指定keyVaultId和keyVaultSecretName两个属性——Azure需要通过keyVaultId定位到对应的密钥保管库,仅提供秘钥名称无法完成证书创建。

修正后的配置

resource "azapi_resource" "cert" {
  depends_on = [data.azurerm_subscription.current, module.app_service_plan_03, data.azurerm_key_vault.kv_certs]
  type       = "Microsoft.Web/certificates@2021-02-01"
  name       = local.az_managed_ssl_cert_name # 修正local变量名(原配置中local.cert_name与定义的az_managed_ssl_cert_name不匹配)
  parent_id  = module.create_resource_group.id

  body = {
    location = var.location
    properties = {
      keyVaultId         = data.azurerm_key_vault.kv_certs.id
      keyVaultSecretName = "abcdef"
    }
  }
}

额外必要配置

确保你的Azure Key Vault已配置正确的访问策略,允许Azure App Service服务主体读取机密:

  • 向Key Vault添加访问策略,授予机密权限中的Get权限
  • 目标主体选择Microsoft App Service(服务主体ID:abfa0a7c-a6b6-4736-8310-5855508787cd)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:37:22