【问题标题】:Terraform - Optional SSM parameter lookupTerraform - 可选的 SSM 参数查找
【发布时间】:2021-12-29 05:59:35
【问题描述】:

我正在查找 SSM 参数,该参数可能存在也可能不存在,具体取决于传入的变量:

data "aws_ssm_parameter" "server_tags" {
  name  = "/${var.env_number}/server_tags"
}

然后我在我的本地人中像下面这样使用它并传递给我的模块:

locals {
  server_tags = data.aws_ssm_parameter.server_tags != null ? jsondecode(data.aws_ssm_parameter.server_tags.value) : {}
  instance_tags = merge(var.instance_tags, local.server_tags)
}

当我的参数存在时这工作正常,但如果我传入一个我的参数不存在的值,我会收到错误:

Error describing SSM parameter (/997/server_tags): ParameterNotFound: 

我是否可以预先检查参数是否存在或以某种方式使其成为可选参数?

谢谢

【问题讨论】:

  • 您无法从data 块中捕获错误,但可以根据已声明变量的输入值将其设为可选。听起来可以吗?

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


【解决方案1】:

很遗憾,您不能这样做。 TF 没有任何构建机制来检查数据源是否存在。但是您可以使用External Data Source 编写自己的逻辑。

由于您对外部数据源进行了编程,因此您可以创建一个逻辑来检查资源是否存在。

【讨论】:

  • 谢谢 - 我没有找到解决方案,但我只是确保资源存在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2020-11-23
  • 2022-01-16
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2021-05-20
相关资源
最近更新 更多