[英]Terraform - Increment a Variable in a for_each Loop
我正在嘗試找出一種向資源添加遞增數字的方法。
這是我的代碼片段。 我想將優先級設為遞增數字,而不是傳入固定數字。
當前代碼
resource "azurerm_firewall_network_rule_collection" "netrc" {
for_each = {for network_rule_collection in var.network_rule_collections: network_rule_collection.name => network_rule_collection}
name = "netrc-${each.key}"
azure_firewall_name = var.afw_name
resource_group_name = var.resource_group_name
priority = var.priority
action = each.value.action
基本上,我想看起來像這樣:
priority = (each.index * 10) + 140
我嘗試使用each.key ,但在這個模塊中, each.key 是一個字符串。
我也嘗試了一個計數器,但你不能將一個計數器與一個 for_each 循環結合起來。
有什么想法或建議嗎?
編輯
我最終使用了下面建議的索引。
priority = (index(var.application_rule_collections, each.value) + 100)
一種方法是預先計算優先級:
locals {
priorities = {
for idx, network_rule_collection in var.network_rule_collections:
network_rule_collection.name => idx * 10 + 140
}
}
然后
resource "azurerm_firewall_network_rule_collection" "netrc" {
for_each = {for network_rule_collection in var.network_rule_collections: network_rule_collection.name => network_rule_collection}
name = "netrc-${each.key}"
azure_firewall_name = var.afw_name
resource_group_name = var.resource_group_name
priority = local.priorities[each.key]
action = each.value.action
我最終按照建議使用了索引。
priority = (index(var.application_rule_collections, each.value) + 100)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.