【问题标题】:if else condiation on key name in terraform codesif else 条件是 terraform 代码中的键名
【发布时间】:2022-10-16 04:54:07
【问题描述】:

据我所知,我们可以使用terraform count 作为 if-else 条件,但这是为了价值。

使用Data Source: aws_secretsmanager_secret的样本

它有两个键:namearn

我的情况是,

  • 如果我有变量secret_name,它将使用密钥name
  • 如果我有变量secret_arn,它将使用密钥arn
  • 不能同时使用(我可以自己控制)

怎么做,像这样

data "aws_secretsmanager_secret" "this" {
  if count = length(var.secret_arn)
     arn = var.secret_arn
  else if count = length(var.secret_name)
     name = var.secret_name
  fi
}

【问题讨论】:

  • 你是否会有count 元参数?如果不是,那么实现这一目标应该不难。

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


【解决方案1】:

您可以在 arnname 之间交替,如下所示:

data "aws_secretsmanager_secret" "by-arn" {
  arn = length(var.secret_arn) > 0 ? var.secret_arn : null
  name = length(var.secret_name) > 0 ? var.secret_name : null
}

【讨论】:

  • 虽然这确实回答了给定内容的问题,但我假设如果没有 variable 声明块,这个问题是模棱两可的。虽然如果默认值为空字符串,这确实有效,但如果默认值为 null 类型(这也是可能的),它就不起作用。因此,如果这对您@Bill 不起作用,则需要使用变量声明块更新问题。
猜你喜欢
  • 2019-04-25
  • 2021-09-25
  • 2023-01-30
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多