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

如何避免Azure APIM订阅主键被Terraform修改?

解决方案:手动指定Azure APIM订阅主键避免部署时变更

核心问题原因

Azure APIM的订阅资源在Terraform中,若仅设置primary_key而未显式指定secondary_key,Terraform会自动生成一个secondary_key,且每次执行apply时可能触发资源更新;另外,若Terraform状态文件记录的键值与Azure端实际值存在差异,也会导致主键被重新生成。

具体修复步骤

1. 同时显式配置primary_key和secondary_key

修改azurerm_api_management_subscription资源定义,同时指定primary_key和secondary_key,确保两者都使用固定的现有值:

resource "azurerm_api_management_subscription" "test" {
  api_management_name = upper("${lower(local.apim_name)}")
  resource_group_name = var.resource_group_name
  user_id             = azurerm_api_management_user.test.id
  product_id          = data.azurerm_api_management_product.crm.id
  display_name        = "testCRM"
  state               = "active"
  primary_key         = var.crm_subscription_key
  secondary_key       = var.crm_subscription_secondary_key # 新增配置
  depends_on = [
    azurerm_api_management_user.test,
    module.api_product_xxx
  ]
}

对应的变量补充定义:

variable "crm_subscription_key" {
  default     = "your-existing-primary-key"
  sensitive   = true
}

variable "crm_subscription_secondary_key" {
  default     = "your-existing-secondary-key"
  sensitive   = true
}

2. 同步Terraform状态与Azure实际资源

如果之前已部署过该资源,需先将Azure端的实际主键值同步到Terraform状态中,避免后续部署触发变更:

  1. 执行terraform state show azurerm_api_management_subscription.test查看当前状态记录的键值
  2. 若状态值与Azure端实际值不一致,执行terraform state rm azurerm_api_management_subscription.test删除现有状态记录
  3. 执行导入命令将Azure端现有订阅资源导入状态:
    terraform import azurerm_api_management_subscription.test "/subscriptions/<your-sub-id>/resourceGroups/<rg-name>/providers/Microsoft.ApiManagement/service/<apim-name>/subscriptions/<subscription-name-or-id>"
    
    替换命令中<>内的实际参数(订阅名称或ID可在Azure门户APIM的订阅页面获取)
  4. 执行terraform plan确认无变更提示

3. 确保无自动生成逻辑

只要显式指定了primary_key和secondary_key,Terraform就不会自动生成新的键值,避免部署时的意外变更。

验证方式

完成配置调整后执行terraform plan,若输出显示No changes. Your infrastructure matches the configuration.,则说明配置生效,后续部署不会再修改主键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:32:44