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

如何仅通过Terraform将现有APIM STv1实例迁移至STv2?

求助:仅通过Terraform将APIM从STv1迁移至STv2的可行流程

请问是否有人成功仅通过Terraform将运行在STv1平台的现有APIM实例迁移至STv2?禁止通过Azure门户手动更新。我们能够创建全新的STv2实例,但找不到迁移流程相关文档,甚至寻求Hashicorp支持后仍未解决。

背景信息

  • 使用部署在Internal模式VNET中的Developer及Premium级APIM实例,已满足PublicIP、网络安全组、API版本等所有STv2前置条件
  • 测试过AzureRM 2.98和3.0版本Provider,均无法将APIM迁移至新子网
  • 仅允许通过Terraform + Azure DevOps进行变更

若有经过验证的可行流程,恳请分享,非常感谢!

更新:测试代码及问题详情

我原本认为满足STv2要求后,更新subnet_id即可在子网迁移过程中完成APIM升级,但实际并未生效。虽然执行plan显示子网更新正确,apply也成功完成,但实例并未迁移至新子网。测试用的基础APIM代码如下:

############ APIM Configuration ##############
resource "azurerm_api_management" "apim" {
  depends_on           = [azurerm_public_ip.ip, azurerm_subnet_network_security_group_association.nsg2subnet]
  name                 = "apim-${var.api_management[\"name\"]}" # prefix with apim-
  location             = var.location
  min_api_version      = "2021-01-01-preview" # min version required for STV2
  resource_group_name  = var.rg_name
  public_ip_address_id = azurerm_public_ip.ip.id
  publisher_name       = var.api_management[\"publisher_name\"]
  publisher_email      = var.api_management[\"publisher_email\"]
  sku_name             = var.api_management[\"sku_name\"]
  virtual_network_type = "Internal" 
  virtual_network_configuration {
    subnet_id = var.api_management[\"subnet_id\"]
  }

  tenant_access {
    enabled = var.enable_management_api_access
  }
  zones = []

  dynamic "additional_location" {
    for_each = var.multiregion_configs

    content {
      location = additional_location.value[\"location\"]
      virtual_network_configuration {
        subnet_id = additional_location.value[\"subnet_id\"]
      }
    }
  }
  dynamic "identity" {
    for_each = [var.identity]
    content {
      type         = identity.value[\"type\"]
      identity_ids = identity.value[\"type\"] == "UserAssigned" || identity.value[\"type\"] == "SystemAssigned, UserAssigned" ? [identity.value[\"id\"]] : null
    }
  }

  policy {
    xml_content = coalesce(var.policy, local.default_policy)
  }

  security {
    tls_rsa_with_aes128_gcm_sha256_ciphers_enabled = true
  }

  tags = local.tags

}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:34:55