0

我正在使用 terraform 模块创建 s3 存储桶,并且我继承的代码使用存储桶名称列表作为变量,并且本质上循环通过 s3_bucket_names 变量在列表中创建存储桶 for_each 名称。

当我需要从这些创建的存储桶之一调用 id 以在特定存储桶上设置 s3_notification_event 时,就会出现问题。我知道如果这是一个存储桶,或者每个存储桶都使用自己的模块资源单独调用,例如,我可以使用 module.aws_s3_bucket.data_bucket.id 输出调用返回单个 id。

我知道我可以重写脚本并单独调用模块,这可以解决问题,但是有人知道在循环单个模块时如何返回特定资源的值吗?

以供参考:

module "aws_s3_bucket" {
  source               = "****"
  s3_bucket_names      = var.s3_bucket_names
  s3_bucket_acl        = var.s3_bucket_acl
  versioning           = var.versioning
  s3_log_target_bucket = var.s3_log_target_bucket
  s3_log_prefix        = var.s3_log_prefix
}
resource "aws_s3_bucket" "s3_bucket" {
  for_each = var.s3_bucket_names
  ...
}

感谢任何人可以提供的任何建议/见解。

4

0 回答 0