Terraform Set "Count" 中的多个变量

Terraform Set More than one variable in "Count"

我正在使用下面的代码:

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.

我需要找到一种方法来在 SAME COUNT 中添加两个或更多变量。任何帮助将不胜感激。

你在这里真正想要完成的是指定两个条件,它们结合起来确定 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"
}