Terraform aws_ssm_parameter null/空并带有ignore_changes

G G*_*III 5 terraform ssm terraform-provider-aws

我有一个 Terraform 配置,如下所示:

resource "random_string" "foo" {
  length = 31
  special = false
}

resource "aws_ssm_parameter" "bar" {
  name = "baz"
  type = "SecureString"
  value = random_string.foo.result
  lifecycle {
    ignore_changes = [value]
  }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是,首先terraform apply资源将根据 的值bar存储在SSM 中,然后在后续调用时我将能够引用,但是我看到的是它在第一次运行时工作,存储新创建的随机值,然后在后续运行中为空。bazfooapplyaws_ssm_parameter.bar.valueaws_ssm_parameter.bar.value

如果我创建一个可以正确提取值的数据源,但当它尚不存在时,aws_ssm_parameter它在第一个数据源上不起作用。apply如何修改此配置,以便获取存储在bazSSM 中的值并在同一配置中创建该值?

G G*_*III 0

哦,我忘了这个问题,但事实证明我确实解决了这个问题。

问题是我在另一个模块中使用的模块内创建 ssm 参数。问题是因为我没有输出与此参数相关的任何内容,因此它似乎在创建后的后续重新计划中被 Terraform 从状态中删除。将其公开为模块上的输出解决了该问题。