使用模板文件函数在 shell 脚本中引用 Terraform 变量

Reference Terraform variable in shell script using templatefile function

我有一个 shell 脚本可以使用 wget 下载 http link:

wget -qO - "${mojang_server_url}"

我想在 tfvars 文件中输入这个 link,然后使用 Terraform 在 shell 脚本中引用它。

data "template_file" "setup_script" {
 template = file("setup.sh")
 vars = {
  mojang_server_url = "${var.mojang_server_url}"
 }
}

但是,official Terraform documentation for template_file 告诉我应该改用模板文件函数?

我似乎无法理解这个函数的语法,这是我得到的:

templatefile("setup.sh",{"mojang_server_url"="${var.mojang_server_url}")

它突出显示模板文件,说:

Argument or block definition required: An argument or block definition is required here. To set an argument, use the equals sign "=" to introduce the argument value.

有没有办法让它可以在 shell 脚本中引用 tfvars 变量?

谢谢!

您只需提供一张地图作为第二个参数的输入即可:

data "template_file" "setup_script" {
  template = templatefile("setup.sh",
    {
      mojang_server_url = var.mojang_server_url
    }
  )
}