terraform - terraform import 和 terraform state mv 的区别
问题描述
我最近开始研究 Terraform,有一个关于terraform state mv
和的问题terraform import
。根据文档,可以在资源名称更改时使用 terraform state mv,并且必须将更新后的名称添加到状态文件中。并且 terraform import 可用于将在 Terraform 之外创建的资源导入到状态文件中。我的问题是即使资源名称更改或代码结构更改(使用模块),我们仍然可以使用terraform import
更新状态文件正确吗?谁能告诉我,使用terraform state mv
命令的真正好处是什么?
解决方案
所以问题确实是这种特殊情况:
我已重命名 TF 资源/更改了 IaC 中资源的结构。我可以将它重新导入到新结构中,而不是移动它吗?
是的,你可以,但国家会发生什么?您将根据 TF 状态导入您已经在管理的资源。您修改过的旧资源仍应被管理,因此您可能会遇到 TF 操作员尝试重新创建甚至删除它的问题。这完全取决于您的云提供商中的状态与实际情况相匹配。
如果您仍想导入更新的内容,我会选择terraform state rm
&terraform import
之后。在对特定模块/资源进行重大更改后,有时需要/轻松破解。当您不确定云资源如何与 TF 代码匹配时,这也是一种很好的调试体验,因为您只会看到这个新导入的资源的状态差异。
推荐阅读
- flutter - 如何在颤动中并排对齐列表视图中的项目?
- asp.net-core - 使用 Html.BeginCollectionItem 从模式弹出窗口中捕获数据作为部分视图的一部分
- android - 类型与 Kotlin 通用适配器不匹配
- java - 如何使用 redis-cli 控制台列出数据?
- angular - 执行 ng serve 时的“wdm”是什么?
- entity-framework - 主体键映射到实体框架核心中不同名称的列
- python - 线程优先级解决方法
- java - 我可以使用 JNI 层在 android 应用程序中重用我的 c++ 库吗?
- php - PHP 找不到 `npm` 可执行文件
- python - 使用 fontTools 将 .ttf 字体添加到 Tkinter