我正在使用 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
...
}
感谢任何人可以提供的任何建议/见解。