Amazon web services 在Terraform中重命名s3 bucket(但不是s3)会导致创建然后销毁?

Amazon web services 在Terraform中重命名s3 bucket(但不是s3)会导致创建然后销毁?,amazon-web-services,amazon-s3,terraform,Amazon Web Services,Amazon S3,Terraform,我想重构一下我的地形脚本 之前: 资源aws_s3_桶abc{ 水桶=我的水桶 acl=专用 region=${var.aws_region} 标签={ Name=我的桶 } 版本控制{ 启用=真 mfa_delete=错误 } } 之后: 资源aws_s3_桶定义{ 水桶=我的水桶 acl=专用 region=${var.aws_region} 标签={ Name=我的桶 } 版本控制{ 启用=真 mfa_delete=错误 } } 如您所见,只有Terraform中的名称更改了abc->de

我想重构一下我的地形脚本

之前:

资源aws_s3_桶abc{ 水桶=我的水桶 acl=专用 region=${var.aws_region} 标签={ Name=我的桶 } 版本控制{ 启用=真 mfa_delete=错误 } } 之后:

资源aws_s3_桶定义{ 水桶=我的水桶 acl=专用 region=${var.aws_region} 标签={ Name=我的桶 } 版本控制{ 启用=真 mfa_delete=错误 } } 如您所见,只有Terraform中的名称更改了abc->def

但是,这会导致在地形平面图中创建/销毁铲斗

我希望Terraform能够识别相同的桶,因为它们具有相同的属性,包括桶

问题:

为什么会这样? 有没有办法在不破坏基础设施的情况下重构地形脚本? 可以使用,以反映状态中的此更改

在你的情况下,这将是

terraform state mv aws_s3_bucket.abc aws_s3_bucket.def
根据我自己的经验,这很有效,我建议这样做,而不是与坏名声

Terraform不识别这些变化,不:-

您可以使用,以反映状态中的这种变化

在你的情况下,这将是

terraform state mv aws_s3_bucket.abc aws_s3_bucket.def
根据我自己的经验,这很有效,我建议这样做,而不是与坏名声


Terraform无法识别此类更改,否:-

因为资源状态没有更改,您只更改了代码。因此,您必须遵循答案。由于资源状态没有更改,所以的可能重复,您只更改了代码。所以你必须遵循答案。可能是重复的