terraform - 重命名而不是删除资源?

标签 terraform terraform-provider-aws

重组/重命名资源时有什么方法可以避免资源删除?示例:当我第一次实现 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 不知道您已经重命名/移动了资源,但您可以使用 terraform state mv 告诉它资源应该存储在状态中的位置。 .

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

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

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

关于terraform - 重命名而不是删除资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112142/

相关文章:

amazon-web-services - 从 terraform 中的安全组名称中提取安全组 ID

terraform - 使用启动模板滚动更新 ASG

google-cloud-platform - googleapi : Error 400: Precondition check failed.,通过 Terraform 创建 Cloud Composer 环境时失败了前提条件

azure - for 循环中的 Terraform for 循环

amazon-web-services - 在 Terraform 中将 "Application Load Balancer"附加到 "Auto Scaling Group"会出现错误

terraform - 如何对多个实例使用 Terraform provisioner

amazon-web-services - 在 terraform 中,如何输出 aws_route53_record 别名值?

amazon-web-services - 在多个 AWS Organizations 账户上部署资源

amazon-web-services - 仅当不存在时如何创建 terraform 资源

logstash - 如何在 Terraform 模板中转义 Logstash sprintf 表达式?