【发布时间】:2022-01-27 23:44:27
【问题描述】:
我有以下 TF 模块来创建 Secret Manager 资源:
resource "aws_secretsmanager_secret" "secrets_manager" {
count = length(var.secrets)
name = element(split(":", var.secrets[count.index]),0)
description = "Managed by Terraform"
}
resource "aws_secretsmanager_secret_version" "secret" {
count = length(var.secrets)
secret_id = aws_secretsmanager_secret.secrets_manager[count.index].id
secret_string = <<EOF
{
"${element(split(":", var.secrets[count.index]),1)}": "${element(split(":", var.secrets[count.index]),2)}"
}
EOF
}
与:
module "secrets_manager" {
source = "./modules/secret_manager"
secrets = [
"secret_name:secret_value:secret_key",
...
]
}
这对我来说非常有效。现在我想要的是在不改变这个机制的情况下创建一个秘密而不指定/创建一个值/键的可能性。
module "secrets_manager" {
source = "./modules/secret_manager"
secrets = [
"secret_name:secret_value:secret_key",
"secret_name",
"secret_name:secret_value:secret_key",
...
]
}
我一直在尝试使用地图作为变量等....没有运气:
secrets_map = {
secret_one = {
secret_name = "...."
secret_value = "...."
secret_key = "...."
}
secret_two = {
secret_name = "...."
}
}
}
【问题讨论】:
-
“我一直在尝试使用地图作为变量,等等......没有运气。”显示该代码。地图(实际上是地图列表)是实现此目的的好方法。如果您在使用地图时遇到问题,请显示代码以便我们为您提供帮助。
-
嗨@MarkB 我已经添加了地图,现在我想知道如何读取这些值,我正在研究一个带有查找功能的循环......
标签: terraform terraform-provider-aws