Terraform 重命名资源而不删除

tjd*_*bts 23 terraform

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

\n

目前,当我使用 Terraform state mv 命令时,出现以下错误

\n
 terraform state mv "module.azdo-module.azuredevops_git_repository[\\"repo1\\"]" "module.azdo-module.azuredevops_project.azuredevops_git_repository[\\"repo2\\"]"\n
Run Code Online (Sandbox Code Playgroud)\n

出现以下错误

\n
  Error: Invalid address\n \xe2\x94\x82 \n \xe2\x94\x82   on  line 1:\n \xe2\x94\x82   (source code not available)\n \xe2\x94\x82 \n \xe2\x94\x82 A resource name is required.\n
Run Code Online (Sandbox Code Playgroud)\n

spa*_*ovv 35

Terraform 在 1.1 版本中引入了一种新的声明性方式,使用移动块语法来重构资源。

脚步:

  1. 将资源重命名为新名称
moved {
  from = module.azdo-module.azuredevops_git_repository.repo1
  to   = module.azdo-module.azuredevops_project.azuredevops_git_repository.repo2
}
Run Code Online (Sandbox Code Playgroud)
  1. 更新对新资源名称的引用
  2. 计划并应用
  3. 删除移动的块(假定没有其他人使用您的模块)

更多信息:

https://developer.hashicorp.com/terraform/language/modules/develop/refactoring#moved-block-syntax


小智 23

或许

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

列出资源以检查名称

terraform state list