gpt4 book ai didi

amazon-web-services - 使用 terraform 为多个现有 s3 存储桶创建 s3 存储桶策略

转载 作者:行者123 更新时间:2023-12-05 03:41:30 25 4
gpt4 key购买 nike

我有一些使用 terraform 代码创建的 S3 存储桶,如下所示:

resource "aws_s3_bucket" "a" {
...
}
resource "aws_s3_bucket" "b" {
...
}
resource "aws_s3_bucket" "c" {
...
}

现在我想创建存储桶策略并将此策略应用于所有现有的 s3 存储桶(a、b、c)。我怎样才能得到 s3 bucket id 并做一个循环或类似的东西?请多多指教。非常感谢!!!

resource "aws_s3_bucket_policy" "abc" {
bucket = aws_s3_bucket.*.id
...
}

最佳答案

如果您创建多个桶,它们只是相差一个或几个参数(例如名称),您应该使用 countfor_each并以 list 的形式提供名称。例如:

variable "buckets" {
default = ["a", "b", "c"]
}

resource "aws_s3_bucket" "bucket" {
for_each = var.buckets
name = each.key
# ...
}

resource "aws_s3_bucket_policy" "abc" {
for_each = var.buckets
bucket = aws_s3_bucket.bucket[each.key].id
...
}

更新

您还可以:


locals {
buckets = [aws_s3_bucket.a, aws_s3_bucket.b, ws_s3_bucket.c]
}

resource "aws_s3_bucket_policy" "abc" {
for_each = {for idx, bucket in local.buckets: idx => bucket}

bucket = each.value.id
...
}

关于amazon-web-services - 使用 terraform 为多个现有 s3 存储桶创建 s3 存储桶策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67700567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com