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 卷的新快照
如何删除一列并创建一个新列而不是在 EF Core 中重命名?