我使用以下代码:
data "aws_secretsmanager_secret_version" "test1" {
count = var.test123.load_from_secrets_manager?1:0
secret_id = "test1"
}
现在,当我在没有任何错误的情况下运行terraform init时,这一切都很好。
现在,我的问题是,我需要在同一数据部分下添加一个新变量,就像一样
data "aws_secretsmanager_secret_version" "test1" {
count = var.test123.load_from_secrets_manager?1:0
count = var.test456.load_from_secrets_manager?1:0
secret_id = "test1"
}
当我在上面运行terraform init时,我会得到错误:
The argument "count" was already set. Each argument may be set only once.
我需要想办法在同一计数中添加两个或多个变量。
您在这里真正想要完成的是指定两个条件,这两个条件结合起来确定data
块是否应该尝试执行READ
。你可以通过结合以下逻辑来做到这一点:
data "aws_secretsmanager_secret_version" "test1" {
count = (var.test123.load_from_secrets_manager && var.test456.load_from_secrets_manager) ? 1 : 0
secret_id = "test1"
}
您可能还想更新此项以使用for_each
元参数:
data "aws_secretsmanager_secret_version" "test1" {
for_each = (var.test123.load_from_secrets_manager && var.test456.load_from_secrets_manager) ? toset(["test1"]) : []
secret_id = "test1"
}