【问题标题】:Terraform outputs for resources with count具有计数的资源的 Terraform 输出
【发布时间】:2019-02-02 01:54:38
【问题描述】:

我的 s3 资源在 terraform 中,配置如下:

locals {
    bucket_count = "${length(var.s3_config["bucket_names"])}"
}

resource "aws_s3_bucket" "s3_bucket" {
    count = "${local.bucket_count}"
    bucket = "${format("%s-%s", element(var.s3_config["bucket_names"], count.index), var.region)}"
    acl = "private"
    region = "${var.region}"

    tags {
        Name = "${format("%s-%s", element(var.s3_config["bucket_names"], count.index), var.region)}"
    }
}

我想为所有创建的存储桶设置输出变量,所以我创建了包含内容的文件名 output.tf

output "buckets" {
  value = "${aws_s3_bucket.s3_bucket.*.bucket}"
}

output "buckets_arns" {
  value = "${aws_s3_bucket.s3_bucket.*.arn}"
}

当我应用配置时,我在 terraform.tfstate 文件中看到输出,但是当我调用 terraform 输出时,我看到没有输出或输出为空的信息我做错了什么?

【问题讨论】:

  • 你试过了吗:output "buckets" { value = [ "${aws_s3_bucket.s3_bucket.*.bucket}" ] }

标签: terraform


【解决方案1】:

试试这个:

output "buckets" {
  value = ["${aws_s3_bucket.s3_bucket.*.bucket}"]
}

output "buckets_arns" {
  value = ["${aws_s3_bucket.s3_bucket.*.arn}"]
}

【讨论】:

  • 从 Terraform 0.12 开始,您可以使用更简洁的语法 output "buckets" { value = aws_s3_bucket.s3_bucket.*.bucket }
猜你喜欢
  • 1970-01-01
  • 2021-08-07
  • 2021-01-12
  • 2021-07-21
  • 1970-01-01
  • 2020-08-08
  • 2021-09-24
  • 1970-01-01
  • 2020-06-02
相关资源
最近更新 更多