[英]How do I get list of all S3 Buckets with given prefix using terraform?
I am writing a Terraform script to setup an event notification on multiple S3 buckets which are starting with given prefix.我正在编写一个 Terraform 脚本来在以给定前缀开头的多个 S3 存储桶上设置事件通知。
For example I want to setup notification for bucket starting with finance-data
.例如,我想为以
finance-data
开头的存储桶设置通知。 With help of aws_s3_bucket datasource, we can configure a multiple S3 buckets which are already present and later we can use them in aws_s3_bucket_notification resource.在aws_s3_bucket数据源的帮助下,我们可以配置多个已经存在的 S3 存储桶,稍后我们可以在aws_s3_bucket_notification资源中使用它们。 Example:
例子:
data "aws_s3_bucket" "source_bucket" {
# set of buckets on which event notification will be set
# finance-data-1 and finance-data-2 are actual bucket id
for_each = toset(["finance-data-1", "finance-data-2"])
bucket = each.value
}
resource "aws_s3_bucket_notification" "bucket_notification_to_lambda" {
for_each = data.aws_s3_bucket.source_bucket
bucket = each.value.id
lambda_function {
lambda_function_arn = aws_lambda_function.s3_event_lambda.arn
events = [
"s3:ObjectCreated:*",
"s3:ObjectRemoved:*"
]
}
}
In aws_s3_bucket datasource, I am not able to find an option to give a prefix of the bucket and instead I have to enter bucket-id for all the buckets.在aws_s3_bucket数据源中,我找不到提供存储桶前缀的选项,而是必须为所有存储桶输入 bucket-id。 Is there any way to achieve this?
有没有办法实现这一目标?
Is there any way to achieve this?
有没有办法实现这一目标?
No there is not.不,那里没有。 You have to explicitly specify buckets that you want.
您必须明确指定所需的存储桶。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.