Terraform – 结合多个output使用Zipmap Function制作新的map
为什么需要使用 zipmap?
- 数据结构转换
当你有两个并行的列表(例如,一个列表包含区域名称,一个列表包含对应区域的 AMI ID)时,使用 zipmap 可以方便地将这两个列表合并成一个映射,使得后续的引用和迭代更加直观和高效。 - 简化配置管理
在模块化设计或者动态配置资源时,zipmap 可以帮助你生成查找表,这样你就可以通过键直接访问相应的值,而不需要依赖复杂的 for 循环或手动匹配索引。 - 确保数据匹配
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结果:

Facebook评论