首页 > 解决方案 > 仅当 Azure 中不存在 azurerm_resourcegroup 时,如何通过 terraform 创建 azurerm_resourcegroup?

问题描述

我希望我的 terraform 脚本仅在 Azure 中不存在资源组时才创建它,否则它应该跳过资源组的创建。

标签: azureterraformterraform-provider-azure

解决方案


好吧,您可以使用Terraform external执行 CLI 命令来检查资源组是否存在。然后使用结果来判断资源组是否会创建。这是一个例子:

./main.tf

provider "azurerm" {
    features {}
}

variable "group_name" {}

variable "location" {
    default = "East Asia"
}

data "external" "example" {
    program = ["/bin/bash","./script.sh"]

    query = {
        group_name = var.group_name
    }
}

resource "azurerm_resource_group" "example" {
    count = data.external.example.result.exists == "true" ? 0 : 1
    name = var.group_name
    location = var.location
}

./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}'

推荐阅读