无法将现有Azure资源组导入Terraform状态,报错‘configuration for import target does not exist’的解决求助
无法将现有Azure资源组导入Terraform状态,报错‘configuration for import target does not exist’的解决求助
我最近在配置Terraform管理Azure资源组,想要实现资源组不存在就创建,存在则跳过的逻辑,写了对应的配置文件,但现在尝试导入已经存在的资源组时,碰到了报错“configuration for import target does not exist”,实在搞不定,来请教大家怎么解决这个问题。
我的配置文件
main.tf
data "external" "rg_check" { program = ["/bin/bash","./script.sh"] query = { group_name = var.RG_NAME } } resource "azurerm_resource_group" "rg_env" { count = data.external.rg_check.result.exists == "true" ? 0 : 1 name = var.RG_NAME location = var.LOCATION provider = azurerm.org_env }
script.sh
#!/bin/bash eval "$(jq -r '@sh "GROUP_NAME=\(.group_name)"')" result=$(az group exists -n $GROUP_NAME) jq -n --arg exists "$result" '{"exists":$exists}'
问题说明
现在的情况是,当资源组已经存在时,data.external.rg_check.result.exists会返回"true",导致资源块的count被设为0,Terraform就认为这个资源的配置不存在,所以执行导入命令时就会抛出那个错误。我既想保留“存在则不创建”的逻辑,又能把已有的资源组正常导入到Terraform状态中,有没有合适的调整方案?
备注:内容来源于stack exchange,提问作者Learning_Learning
相关产品推荐
相关产品推荐

