重命名而不是删除资源?
Posted
技术标签:
【中文标题】重命名而不是删除资源?【英文标题】:Rename instead of delete resource? 【发布时间】:2018-08-13 04:58:52 【问题描述】:在重组/重命名资源时,有什么方法可以避免资源删除?示例:当我第一次实现 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 重命名资源?
【问题讨论】:
【参考方案1】:不幸的是,Terraform 不知道您已经重命名/移动了资源,但您可以使用 terraform state mv
告诉它资源应该存储在状态中的哪个位置。
如果你跑了,你的情况:
terraform state mv aws_cloudfront_distribution.main_site_distribution module.cloudfront.aws_cloudfront_distribution.main_site_distribution
然后运行另一个计划,您应该看不到任何更改(或只看到您对资源所做的更改以及移动)。
【讨论】:
以上是关于重命名而不是删除资源?的主要内容,如果未能解决你的问题,请参考以下文章
如何删除一列并创建一个新列而不是在 EF Core 中重命名?