我正在查找 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:
无论如何,我可以预先检查该参数是否存在或以某种方式使其可选吗?
Thanks
可悲的是你不能这样做。 TF 无法建立机制来检查数据源是否存在。但是您可以使用以下方法编写自己的逻辑:外部数据源 https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source.
由于您对外部数据源进行了编程,因此您可以创建一个逻辑来检查资源是否存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)