我正在嘗試從地圖中的串列中獲取每個值,并使用地圖中的描述對它進行迭代以獲取前綴串列,但無法弄清楚如何。
多變的:
users = {
"user1" = {
description = ""
secret_key_value = {
username = "user1"
home_directory = "/user1/"
}
allowlist = ["200.0.0.1/32"]
},
"user2" = {
description = ""
secret_key_value = {
username = "user2"
home_directory = "/user2/"
}
allowlist = ["200.0.0.5/32", "200.0.0.10/32"]
}
資源:
resource "aws_ec2_managed_prefix_list" "sftp" {
count = local.prefix_list_enabled ? 1 : 0
name = "User Whitelist"
address_family = "IPv4"
max_entries = 10
dynamic "entry" {
for_each = {
for k, v in var.users : k => v
if v.allowlist != "" || v.description != ""
}
content {
cidr = entry.value.allowlist
description = entry.value.description
}
}
}
有了以上內容,我得到“屬性“cidr”的值不合適:需要字串。”。我需要分解允許串列變數鍵中的串列值并使用描述遍歷它們。有誰知道我怎么能做到這一點?
uj5u.com熱心網友回復:
你必須展平你的users:
locals {
users_flat = merge([
for k,v in var.users: {
for cidr in v.allowlist:
"${k}-${cidr}" => {
description = v.description
secret_key_value = v.secret_key_value
"cidr" = cidr
}
}
]...)
}
然后
dynamic "entry" {
for_each = local.users_flat
content {
cidr = entry.value.cidr
description = entry.value.description
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/488250.html
