如何使用Terraform赋值和导出变量



我想使用API从第三方服务器获取密码,然后将其分配给参数store:

最初我认为我可以使用$TF_VAR_password作为桥梁来实现:

步骤1:创建.env文件:

cat test.env 
export TF_VAR_password=< 3rd party API to get the password, say 123456 >

步骤2:使用Terraform null_resource执行测试。导出TF_VAR_password:

resource "null_resource" "get_password" {
  triggers = {
    always_run = "${timestamp()}"
  }
  provisioner "local-exec" {
    command = "source ./${path.module}/test.env"
  }
}

步骤3:将TF_VAR_password(即var.password)赋值给参数store:

resource "aws_ssm_parameter" "abc" {
  value             = var.password  <---------
  ...
}

当我运行上面的Terraform时,它显示:执行("/bin:/sh"-c"源 ./../../../../aws/模块/test.env"]

但是当我运行echo $TF_VAR_password时,它没有显示$TF_VAR_password为123456。

如果我直接运行source ./../../../../aws/modules/test.env,我看到$TF_VAR_password变成123456,这意味着脚本本身是正确的。

如何从第三方服务器获取并分配参数存储的密码?

HashiCorp有专用的数据源称为外部,这将允许您调用您的API,获取密码,然后返回到您的TF脚本供以后使用。

这将要求您以JSON形式返回结果,如文档中所示。

相关内容

  • 没有找到相关文章

最新更新