【发布时间】:2023-03-16 21:21:02
【问题描述】:
Terraform 有没有办法在不影响创建或删除存储桶的情况下更改现有 S3 存储桶?
例如,我想使用 Terraform 跨多个 AWS 账户启用 S3 复制。 S3 存储桶已经存在,我只想启用复制规则(通过管道),而不需要重新创建、删除或清空存储桶。
我的代码如下所示:
data "aws_s3_bucket" "test" {
bucket = "example_bucket"
}
data "aws_iam_role" "s3_replication" {
name = "example_role"
}
resource "aws_s3_bucket" "source" {
bucket = data.aws_s3_bucket.example_bucket.id
versioning {
enabled = true
}
replication_configuration {
role = data.aws_iam_role.example_role.arn
rules {
id = "test"
status = "Enabled"
destination {
bucket = "arn:aws:s3:::dest1"
}
}
rules {
id = "test2"
status = "Enabled"
destination {
bucket = "arn:aws:s3:::dest2"
}
}
}
}
当我尝试这样做时,Terraform apply 会尝试删除现有存储桶并创建一个新存储桶,而不仅仅是更新配置。我不介意尝试 terraform import,但我担心当我运行 terraform destroy 时这也会破坏存储桶。我想简单地应用和销毁复制配置,而不是已经存在的存储桶。
【问题讨论】:
标签: amazon-web-services amazon-s3 terraform