如何将SQLMI故障转移组导入Terraform进行管理?
如何将SQLMI故障转移组导入Terraform管理?
可以将手动创建的Azure SQL托管实例(SQLMI)故障转移组导入Terraform管理,正确的导入方式及错误原因解析如下:
正确的导入命令格式
故障转移组的导入ID必须包含主、副实例所在的两个区域,通过locations参数拼接在资源路径后,格式示例:
terraform import <Terraform资源地址> '/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Sql/managedInstances/<托管实例名>/instanceFailoverGroups/<故障转移组名>?locations=<主区域>,<副区域>'
针对你的场景,替换实际副区域后的正确命令:
terraform import 'module.sql_mi["eastus"].azurerm_mssql_managed_instance_failover_group.failovergroup[0]' '/subscriptions/****/resourceGroups/rg-pro-eastus/providers/Microsoft.Sql/managedInstances/sqlmi-pro-001/instanceFailoverGroups/fog-eastus?locations=eastus,westus'
之前命令的错误原因
- 仅指定单个区域:故障转移组是跨区域资源,
locations参数必须同时包含主、副实例的区域,单个区域会触发"ID was missing thelocationselement"错误。 - 未添加
locations参数:Terraform AzureRM provider要求该资源的导入ID必须携带此参数,缺失会直接报错。 - 路径截断:第三个命令的资源路径不完整,导致Terraform无法正确解析资源ID结构。
前置注意事项
导入前需确保Terraform代码中已定义azurerm_mssql_managed_instance_failover_group资源块,且资源的名称、关联托管实例、区域等参数与实际手动创建的故障转移组完全匹配,避免导入后出现状态不一致问题。
内容的提问来源于stack exchange,提问作者Dielam
相关产品推荐
相关产品推荐

