【发布时间】:2020-03-11 13:52:16
【问题描述】:
我想稍微重构一下我的 Terraform 脚本。
之前:
resource "aws_s3_bucket" "abc" {
bucket = "my-bucket"
acl = "private"
region = "${var.aws_region}"
tags = {
Name = "My bucket"
}
versioning {
enabled = true
mfa_delete = false
}
}
之后:
resource "aws_s3_bucket" "def" {
bucket = "my-bucket"
acl = "private"
region = "${var.aws_region}"
tags = {
Name = "My bucket"
}
versioning {
enabled = true
mfa_delete = false
}
}
如您所见,只有 Terraform 中的名称 发生了变化(abc -> def)。
但是,这会导致在terraform plan 中创建/销毁存储桶。
我希望 Terraform 将桶识别为相同的(它们具有相同的属性,包括 bucket)。
问题:
- 这是为什么呢?
- 有没有办法在不破坏基础设施的情况下重构 Terraform 脚本?
【问题讨论】:
-
因为资源状态没有改变,你只是改变了代码而已。所以你必须遵循答案。
标签: amazon-web-services amazon-s3 terraform