【问题标题】:Terraform Set More than one variable in "Count"Terraform 在“计数”中设置多个变量
【发布时间】:2022-01-11 20:12:01
【问题描述】:

我正在使用以下代码:

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 中添加两个或更多变量。任何帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services count terraform terraform-provider-aws script


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 2022-10-26
      • 2022-06-22
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多