Terraform – 结合多个output使用Zipmap Function制作新的map

为什么需要使用 zipmap?

  1. 数据结构转换
    当你有两个并行的列表(例如,一个列表包含区域名称,一个列表包含对应区域的 AMI ID)时,使用 zipmap 可以方便地将这两个列表合并成一个映射,使得后续的引用和迭代更加直观和高效。
  2. 简化配置管理
    在模块化设计或者动态配置资源时,zipmap 可以帮助你生成查找表,这样你就可以通过键直接访问相应的值,而不需要依赖复杂的 for 循环或手动匹配索引。
  3. 确保数据匹配
    zipmap 要求两个列表长度必须相同,能自动将相同索引位置的元素一一对应,避免因手动合并而出错。

使用案例

这个使用案例是批量创建了3个AWS IAM User, 然后使用zipmap 把创建的IAM User name和arn做绑定,然后output输出 username list , user arn list 和 username – user arn的 map

resource "aws_iam_user" "created_users" {
  name  = "iamuser.${count.index}"
  count = 3
}

output "arns" {
  value = aws_iam_user.created_users[*].arn
}

output "names" {
  value = aws_iam_user.created_users[*].name
}

output "created_users_arn" {
  value = zipmap(aws_iam_user.created_users[*].name, aws_iam_user.created_users[*].arn)
}

Output结果:

Loading

Facebook评论