gpt4 book ai didi

azure - 如何有条件地跳过使用 terraform 创建/实现的部分 terraform 资源

转载 作者:行者123 更新时间:2023-12-04 14:46:46 25 4
gpt4 key购买 nike

如何有条件地跳过使用 terraform 创建/实现的部分 terraform 资源?

# main.tf file
locals {
vnet_type = (var.vnet_type != "" ? var.vnet_type : "None")
}

data "azurerm_virtual_network" vnet {
name = "testvnet"
resource_group_name = "rest1"
}

data "azurerm_subnet" subnets {
name = "testSubnet"
resource_group_name = "rest1"
virtual_network_name = data.azurerm_virtual_network.vnet.name

}


resource "azurerm_api_management" "apim_demo" {
name = "test-apim"
location = "East US"
resource_group_name = "rest1"
publisher_name = "admin"
publisher_email = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d9b8bdb4b0b799beb4b8b0b5f7bab6b4" rel="noreferrer noopener nofollow">[email protected]</a>"

sku_name = "Developer_1"

identity {
type = "SystemAssigned"
}

# vnet_Type can be External, None or Internal
virtual_network_type = local.vnet_type
virtual_network_configuration {
subnet_id = data.azurerm_subnet.subnets.id
}

}

# variables.tf file
variable "vnet_type" {}

# terraform.tfvars file
vnet_type = "External"

我有三个(dev、stg 和 prod)环境,我想将下面的 tf 代码块/部分应用到 dev 和 stg 环境,在 prod 环境中跳过它。

如何使用条件表达式或 terraform 中的内容实现上述场景?

 virtual_network_type = local.vnet_type
virtual_network_configuration {
subnet_id = data.azurerm_subnet.subnets.id
}

最佳答案

通常您会使用nulldynamic blocks :

virtual_network_type = var.env == "prod" ? local.vnet_type : null


dynamic "virtual_network_configuration" {
for_each = var.env == "prod" ? [1] : []
content {
subnet_id = data.azurerm_subnet.subnets.id
}
}

关于azure - 如何有条件地跳过使用 terraform 创建/实现的部分 terraform 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69888847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com