Terraform 重命名资源而不删除

Posted

技术标签:

【中文标题】Terraform 重命名资源而不删除【英文标题】:Terraform rename a resource without deleting 【发布时间】:2022-01-21 20:31:25 【问题描述】:

我使用 Terraform 创建了 AzDo 存储库。 但是重命名存储库而不删除它的最佳方法是什么。我为此目的找到了一个命令“terraform state mv”。如果有更好的方法,请告诉我。

目前,当我使用 Terraform state mv 命令时,我遇到了错误

 terraform state mv "module.azdo-module.azuredevops_git_repository[\"repo1\"]" "module.azdo-module.azuredevops_project.azuredevops_git_repository[\"repo2\"]"

遇到错误

  Error: Invalid address
 │ 
 │   on  line 1:
 │   (source code not available)
 │ 
 │ A resource name is required.

【问题讨论】:

命令中的命名空间无效,这就是抛出该错误消息的原因。请使用您要为其重命名状态的资源配置的 sn-p 进行更新。 @MattSchuchard 您能否更具体地了解解决方案。你指的是什么命名空间?如果您提供参考 URL 或如何使用正确的命令,那就太好了 【参考方案1】:

也许

terraform state mv "module.azdo-module.azuredevops_git_repository.repo1" "module.azdo-module.azuredevops_project.azuredevops_git_repository.repo2"

列出资源以检查名称

terraform state list

【讨论】:

哇,“terraform 状态列表”帮助我找到了正确的语法。一旦我们改变了状态,应该做些什么来反映目标的变化

以上是关于Terraform 重命名资源而不删除的主要内容,如果未能解决你的问题,请参考以下文章

使用 github-script@v5 操作提取 terraform 资源更改

使用 Terraform 删除以前的快照并创建 EBS 卷的新快照

如何使用 java 代码重命名和移动文件而不删除内容

如何删除一列并创建一个新列而不是在 EF Core 中重命名?

在 Entity Framework Core 中重命名外键而不删除数据

在 PHPStorm 中重命名文件而不重构