[英]Azure :: Terraform fails on azure keyvault secrets
我注意到這個奇怪的錯誤,因為我將我的整個代碼從 1.42.0 提供程序版本移動到 2.19.0。 我正在創建幾個 keyvault 秘密。 早些時候,當我嘗試在應用一次后執行計划時,它曾經刷新 state 並繼續,但現在更新提供程序版本后,我注意到以下錯誤。
錯誤:ID 為“https://mytestingvault.vault.azure.net/secrets/hub-access/060e71ecd1084cb5a6a496f77a2aea5c”的資源已存在 - 要通過 Terraform 管理此資源需要導入到 State。請參閱資源“azurerm_key_vault_secret”的文檔以獲取更多信息。
此外,我添加了生命周期忽略更改,以查看它是否可以跳過讀取保險庫機密更改,但不幸的是顯示了相同的錯誤。 擺脫錯誤的唯一方法是刪除秘密。 我在這里錯了什么?
lifecycle {
ignore_changes = [
value,name
]
}
您可能需要閱讀Terraform state 管理的一般主題。 這並非特定於您的 Key Vault 機密。 某些資源(您的秘密)不是由您剛剛執行的 terraform 工作空間創建的。 TF 不喜歡這樣。 因此,您要么需要將這個預先存在的資源導入到這個工作區的 state 中,要么將其刪除,以便重新創建(從而管理)
問題是即使 keyvault 被刪除,我們也必須使用 aws cli purge 通過 cli 清除它。
Terraform 密鑰保管庫文檔說:
Terraform 將在創建過程中自動恢復軟刪除的 Key Vault,如果找到的話 - 您可以使用 Provider 塊中的功能塊選擇退出此功能。
您應該像這樣配置您的 Terraform 以停止恢復軟刪除的 Key Vault:
provider "azurerm" {
features {
key_vault {
recover_soft_deleted_key_vaults = false
}
}
}
如果您希望 Terraform 在使用terraform destroy
時清除任何軟刪除的密鑰保管庫,請使用以下附加行:
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
recover_soft_deleted_key_vaults = false
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.