Terraform 条件参数块
Terraform conditional argument block
我创建了一个模块以便部署以下 azurerm_automation_schedule
资源:
resource "azurerm_automation_schedule" "example" {
name = var.aaname
resource_group_name = azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
frequency = var.frequency
interval = var.interval
timezone = "Australia/Perth"
start_time = "2014-04-15T18:00:15+02:00"
description = "This is an example schedule"
monthly_occurrence {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}
monthly_occurrence 块参数的存在必须是有条件的,因为它 只有 在 时需要频率是“Month” 否则会抛出错误。
有没有办法创建这个 monthly_occurrence 块参数条件?我正在使用 terraform 0.13.5 和 azurerm 2.38.0
我试过 for_each 但我找不到解决方案。有什么办法吗?
您可以使用 dynamic block 使 monthly_occurrence
成为条件。例如:
resource "azurerm_automation_schedule" "example" {
name = var.aaname
resource_group_name = azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
frequency = var.frequency
interval = var.interval
timezone = "Australia/Perth"
start_time = "2014-04-15T18:00:15+02:00"
description = "This is an example schedule"
dynamic "monthly_occurrence" {
for_each = var.frequency == "Month" ? [1] : []
content {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}
}
您可以将 conditional expressions with dynamic blocks in order to create a conditional dynamic block 与每月发生的次数组合起来。
你会得到这样的东西:
dynamic "monthly_occurrence" {
for_each = var.frequency == Month ? 1 : 0
content {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}
我创建了一个模块以便部署以下 azurerm_automation_schedule
资源:
resource "azurerm_automation_schedule" "example" {
name = var.aaname
resource_group_name = azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
frequency = var.frequency
interval = var.interval
timezone = "Australia/Perth"
start_time = "2014-04-15T18:00:15+02:00"
description = "This is an example schedule"
monthly_occurrence {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}
monthly_occurrence 块参数的存在必须是有条件的,因为它 只有 在 时需要频率是“Month” 否则会抛出错误。 有没有办法创建这个 monthly_occurrence 块参数条件?我正在使用 terraform 0.13.5 和 azurerm 2.38.0
我试过 for_each 但我找不到解决方案。有什么办法吗?
您可以使用 dynamic block 使 monthly_occurrence
成为条件。例如:
resource "azurerm_automation_schedule" "example" {
name = var.aaname
resource_group_name = azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
frequency = var.frequency
interval = var.interval
timezone = "Australia/Perth"
start_time = "2014-04-15T18:00:15+02:00"
description = "This is an example schedule"
dynamic "monthly_occurrence" {
for_each = var.frequency == "Month" ? [1] : []
content {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}
}
您可以将 conditional expressions with dynamic blocks in order to create a conditional dynamic block 与每月发生的次数组合起来。
你会得到这样的东西:
dynamic "monthly_occurrence" {
for_each = var.frequency == Month ? 1 : 0
content {
day = monthly_occurrence.value.day
occurrence = monthly_occurrence.value.occurrence
}
}