【发布时间】:2021-12-21 14:38:48
【问题描述】:
如何有条件地跳过使用 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 = "admin@gmail.com"
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
}
【问题讨论】:
-
哪一部分应该是有条件的?
virtual_network_configuration?virtual_network_type?两者都有? -
如果可能的话
-
我猜对于以上 tf 代码的 virtual_network_type 就足够了。但是,我还是跳过它们。现在至少有“virtual_network_configuration”部分。
标签: azure terraform terraform-provider-azure azure-rm