首页 > 解决方案 > terraform import 和 terraform state mv 的区别

问题描述

我最近开始研究 Terraform,有一个关于terraform state mv和的问题terraform import。根据文档,可以在资源名称更改时使用 terraform state mv,并且必须将更新后的名称添加到状态文件中。并且 terraform import 可用于将在 Terraform 之外创建的资源导入到状态文件中。我的问题是即使资源名称更改或代码结构更改(使用模块),我们仍然可以使用terraform import更新状态文件正确吗?谁能告诉我,使用terraform state mv命令的真正好处是什么?

标签: terraform

解决方案


所以问题确实是这种特殊情况:

我已重命名 TF 资源/更改了 IaC 中资源的结构。我可以将它重新导入到新结构中,而不是移动它吗?

是的,你可以,但国家会发生什么?您将根据 TF 状态导入您已经在管理的资源。您修改过的旧资源仍应被管理,因此您可能会遇到 TF 操作员尝试重新创建甚至删除它的问题。这完全取决于您的云提供商中的状态与实际情况相匹配。

如果您仍想导入更新的内容,我会选择terraform state rm&terraform import之后。在对特定模块/资源进行重大更改后,有时需要/轻松破解。当您不确定云资源如何与 TF 代码匹配时,这也是一种很好的调试体验,因为您只会看到这个新导入的资源的状态差异。


推荐阅读