Terraform - 可选的 SSM 参数查找

Terraform - Optional SSM parameter lookup

我正在查找一个 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: 

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

谢谢

遗憾的是你不能这样做。 TF 无法建立机制来检查数据源是否存在。但是您可以使用 External Data Source.

编写您自己的逻辑

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