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

无法将现有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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 13:43:12