每个资源,包括bucket策略,都必须使用相同的提供程序配置才能附加到相应的bucket。否则,terraform将尝试将它们附加到使用非别名提供者的bucket(即。,
provider "aws"
)。换句话说:
resource "aws_s3_bucket" "sankethcl1234_us_east_1" {
count = 2
provider = aws.us-east-1
bucket = "${var.bucket_prefix}-us-east-1-${count.index + 1}"
acl = "private"
}
resource "aws_s3_bucket_policy" "sankethcl1234_us_east_1" {
provider = aws.us-east-1
count = 2
bucket = aws_s3_bucket.sankethcl1234_us_east_1[count.index].id
policy = templatefile("${path.module}/bucket_policy_east.json", {
bucket_name = aws_s3_bucket.sankethcl1234_us_east_1[count.index].id
})
}
resource "aws_s3_bucket" "sankethcl1234_us_west_1" {
provider = aws.us-west-1
count = 2
bucket = "${var.bucket_prefix}-us-west-1-${count.index + 1}"
}
resource "aws_s3_bucket_policy" "sankethcl1234_us_west_1" {
provider = aws.us-west-1
count = 2
bucket = aws_s3_bucket.sankethcl1234_us_west_1[count.index].id
policy = templatefile("${path.module}/bucket_policy_west.json", {
bucket_name = aws_s3_bucket.sankethcl1234_us_west_1[count.index].id
})
}
然后,您将对所有希望在其中包含bucket和bucket策略的区域执行相同的操作。