如何使用Terraform在现有Azure Key Vault中创建Secret并解决配置报错
报错原因解释
data.azurerm_key_vault.SomeApp-DEV是Terraform调用Azure接口拉取到的密钥库完整对象,包含该密钥库的ID、名称、资源组、SKU等全部17个属性,不是单一的字符串值。azurerm_key_vault_secret资源的key_vault_id参数要求传入字符串类型的密钥库资源ID,直接传入完整对象就触发了类型不匹配的报错。
修复方案
仅需要修改azurerm_key_vault_secret资源中key_vault_id的取值,指定取对象的id属性即可,完整修改后的配置如下:
provider "azurerm" { features {} } data "azurerm_key_vault" "SomeApp-DEV" { name = "SomeApp-DEV" resource_group_name = "SomeApp" } resource "azurerm_key_vault_secret" "test-secret" { name = "some-key" value = "test value" # 补充.id后缀,取密钥库对象的ID属性字符串 key_vault_id = data.azurerm_key_vault.SomeApp-DEV.id }
修改后重新执行terraform plan即可正常校验配置。
内容的提问来源于stack exchange,提问作者QkiZ
相关产品推荐
相关产品推荐

