Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Terraform, how do you output a list from an array of objects?

I'm creating a series of s3 buckets with this definition:

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

I'd like to output a list of the website endpoints:

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

What's the syntax to pull out a list of the endpoints (rather than the full object properties)?

like image 676
dr3x Avatar asked Feb 02 '26 20:02

dr3x


1 Answers

If you just want to get a list of website_endpoint, then you can do:

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

This uses splat expression.

like image 118
Marcin Avatar answered Feb 04 '26 11:02

Marcin