重命名而不是删除资源?
Rename instead of delete resource?
在reorganizing/renaming个资源时,有什么办法可以避免资源被删除?示例:当我第一次实现 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 重命名资源?
不幸的是,Terraform 不知道您有 renamed/moved 资源,但您可以使用 terraform state mv
.
告诉它资源应该存储在状态中的什么位置
在你的情况下,如果你 运行:
terraform state mv aws_cloudfront_distribution.main_site_distribution module.cloudfront.aws_cloudfront_distribution.main_site_distribution
然后是 运行 另一个计划,您应该看不到任何更改(或者只看到对资源所做的更改以及移动)。
在reorganizing/renaming个资源时,有什么办法可以避免资源被删除?示例:当我第一次实现 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 重命名资源?
不幸的是,Terraform 不知道您有 renamed/moved 资源,但您可以使用 terraform state mv
.
在你的情况下,如果你 运行:
terraform state mv aws_cloudfront_distribution.main_site_distribution module.cloudfront.aws_cloudfront_distribution.main_site_distribution
然后是 运行 另一个计划,您应该看不到任何更改(或者只看到对资源所做的更改以及移动)。