首页 > 解决方案 > 在 Terraform 中,如何从对象数组中输出列表?

问题描述

我正在使用以下定义创建一系列 s3 存储桶:

resource "aws_s3_bucket" "map" {
  for_each = local.bucket_settings
  bucket = each.key
...
}

我想输出网站端点列表:

 output "website_endpoints" {
    # value = aws_s3_bucket.map["example.com"].website_endpoint
    value = ["${keys(aws_s3_bucket.map)}"] 
 }

提取端点列表(而不是完整的对象属性)的语法是什么?

标签: amazon-web-servicesamazon-s3terraform

解决方案


如果你只想得到一个listof website_endpoint,那么你可以这样做:

 output "website_endpoints" {
    value = values(aws_s3_bucket.map)[*].website_endpoint
 }

这使用splat表达式。


推荐阅读