如何仅通过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
相关产品推荐
相关产品推荐

