19

重组/重命名资源时有什么方法可以避免资源删除?示例:当我第一次实现 CloudFront Terraform 时,它是我项目中的一个独立子目录,后来我切换到将它用作我的根 Terraform 配置中的模块,但这导致 Terraform 想要删除旧的 CloudFront 分配并创建一个新的:

Terraform will perform the following actions:
    - aws_cloudfront_distribution.main_site_distribution
    + module.cloudfront.aws_cloudfront_distribution.main_site_distribution

有没有办法强制 Terraform 重命名资源?

4

1 回答 1

29

不幸的是,Terraform 不知道您已经重命名/移动了资源,但您可以使用terraform state mv.

在您的情况下,如果您运行:

terraform state mv aws_cloudfront_distribution.main_site_distribution module.cloudfront.aws_cloudfront_distribution.main_site_distribution

然后运行另一个计划,您应该看不到任何更改(或只看到您对资源所做的更改以及移动)。

于 2018-03-05T14:09:48.210 回答