gpt4 book ai didi

azure - 如何使用 terraform 将多个 secret 添加到 azure key Vault

转载 作者:行者123 更新时间:2023-12-03 06:30:00 24 4
gpt4 key购买 nike

我见过向 azure key Vault 添加一个 secret (或) key 的示例。但我现在需要使用 terraform 将多个 secret 添加到 azure key Vault。

我怎样才能实现这一目标?有人可以建议吗?

谢谢。

我尝试为每个 secret 添加资源。添加了多个资源,如下所示。但这没有用。

module "keyvault_secret" {

source = "../../modules/keyvault_secret"

count = length(var.secrets)
keyVaultSecretName = keys(var.secrets)[count.index]
keyVaultSecretValue = values(var.secrets)[count.index]
keyVaultId = data.azurerm_key_vault.key_vault.id
}

variables:
variable "secrets" {
type = map(string)
}

variables.tfvars:

secrets = $(secrets)

in YAML pipeline:

displayName: DEV
variables:
- group: 'Environment - Dev'
- name: secrets
value: '{"testAPIKey1" = $(testAPIKey1) , "testAPIKey2" = $(testAPIKey2) }'

我已经在上面的变量组 - 环境 - 开发中定义了这些关键值

这就是错误抛出的内容

需要一个右括号来终止表达式。##[错误]Terraform 命令“计划”失败,退出代码“1”。:括号不平衡##[错误]错误:括号不平衡

最佳答案

您需要循环运行它。有关 Terraform 循环(针对每个循环或计数)的更多信息,请参阅此链接:
https://www.cloudbolt.io/terraform-best-practices/terraform-for-loops/

未经测试,但类似这样:

#Reference AKV in data block
data "azurerm_key_vault" "kvexample" {
name = "mykeyvault"
resource_group_name = "some-resource-group"
}

variable "secret_maps" {
type = map(string)
default = {
"name1"= "value1"
"name2" = "value2"
"name3" = "value3"
}
}

# Count loop
resource "azurerm_key_vault_secret" "kvsecrettest" {
count = length(var.secret_maps)
name = keys(var.secret_maps)[count.index]
value = values(var.secret_maps)[count.index]
key_vault_id = azurerm_key_vault.kvexample.id
}

#----------------- Or use For Each instead of Count
# For Each loop
resource "azurerm_key_vault_secret" "kvsecrettest" {
for_each = var.secret_maps
name = each.key
value = each.value
key_vault_id = azurerm_key_vault.kvexample.id
}

关于azure - 如何使用 terraform 将多个 secret 添加到 azure key Vault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75301131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com