You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform Output中批量输出AWS IAM用户的认证信息

解决Terraform批量输出IAM用户认证信息的格式问题

要实现每个用户认证信息为独立对象的输出格式,可以借助Terraform的for表达式遍历资源实例,将用户名和密码一一配对。以下是两种可行的实现方式:

方法一:通过索引遍历资源实例

利用count创建的资源实例索引一一对应的特性,遍历索引序列生成每个用户的对象:

output "authenticate_list_account" {
  value = [
    {
      account = [
        for i in range(length(var.ops_list_username)) : {
          username = aws_iam_user.create_ops_account[i].name
          password = aws_iam_user_login_profile.ops_account_password[i].password
        }
      ]
    }
  ]
}

方法二:用zip函数配对列表

将用户名列表和密码列表按位置配对后,再转换为对象数组:

output "authenticate_list_account" {
  value = [
    {
      account = [
        for pair in zip(aws_iam_user.create_ops_account[*].name, aws_iam_user_login_profile.ops_account_password[*].password) : {
          username = pair[0]
          password = pair[1]
        }
      ]
    }
  ]
}

效果验证

执行terraform apply后,输出结果会符合期望的格式:

"value": [
  {
    "account": [
      {
        "password": "O'uAj*]g0GV_g0UihP{Og[R_fGu(6(#9",
        "username": "ops_lincoln"
      },
      {
        "password": "Id$Y|jmPr&&cTgbp@n1kEvQ6%H]UN1e^",
        "username": "ops_trump"
      },
      {
        "password": "viN-Y++ei&QgB}7Qgp+_iT$}{mMCi(rq",
        "username": "ops_roosevelt"
      }
    ]
  }
]

内容的提问来源于stack exchange,提问作者Nguyễn Hồng Sơn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:30:00