Azure devops 我如何防止在Azure DevOps Terraform计划步骤中破坏资源?

Azure devops 我如何防止在Azure DevOps Terraform计划步骤中破坏资源?,azure-devops,terraform,terraform-provider-azure,Azure Devops,Terraform,Terraform Provider Azure,我继承了一些职责,我的意思是在AzureDevOps发布管道部署中管理Terraform 我通过以下步骤使用Terraform任务: 初始化 验证 计划 申请 但是在计划输出期间,我可以看到一些我不想删除的资源被破坏 azurerm_key_vault_secret.kv_secret_az_backup_storage_account_name will be destroyed 我一直在寻找一种在创建tfstate文件期间禁用任何资源销毁的方法,但在Azure DevOps中似乎没有这种方

我继承了一些职责,我的意思是在AzureDevOps发布管道部署中管理Terraform

我通过以下步骤使用Terraform任务: 初始化 验证 计划 申请

但是在计划输出期间,我可以看到一些我不想删除的资源被破坏

azurerm_key_vault_secret.kv_secret_az_backup_storage_account_name will be destroyed
我一直在寻找一种在创建tfstate文件期间禁用任何资源销毁的方法,但在Azure DevOps中似乎没有这种方法。因此,我的最佳选择是,我想应该修改底层的main.tf脚本,但我不知道如何修改

这是正在删除的资源之一。我已经改名以保持匿名。有人能为我的困境提出解决办法吗

resource "azurerm_key_vault_secret" "kv_secret_az_storage_account_name" {
  name         = "storage-account-name"
  value        = azurerm_storage_account.storage_account.name
  key_vault_id = azurerm_key_vault.keyvault.id
  depends_on   = [azurerm_storage_account.storage_account]
}

计划
阶段不会破坏您的资源,也不会创建新资源。当您运行
apply
时,它会通知您将发生什么

所以

azurerm_密钥_保险库_机密.kv_机密_az_备份_存储_帐户_名称将被销毁

这只是说,如果运行apply,您的存储帐户将被销毁

但由于它试图删除,这意味着terrafrom将有关此资源的信息保留在状态中。所以它被创建为terraform,现在如果你想把它放在这里的范围之外,我的意思是你不想让它再由你可以使用的脚本来维护

从地形状态移除的物品不会被物理破坏。从Terraform状态删除的项目不再由Terraform管理。例如,如果从状态中删除AWS实例,AWS实例将继续运行,但terraform plan将不再看到该实例


您好,谢谢您的回复。在我的tf脚本的代码块中会是什么样子?另外,由于我希望tf将来能够处理该资源,删除state rm命令是否会重新引入该资源的状态?要重新引入,您需要使用
terraform state mv
,并且不应将其放入任何脚本中。它是一个命令,所以您应该从命令行以任何命令的形式运行它。它会对你配置的后端起作用,并且要小心这一点,并提供一个参数来创建备份。