根据 local_file 更改有条件地触发 Terraform local_exec 配置程序

arj*_*_iw 4 terraform

我使用的是 terraform 0.14,有 2 个资源,一个是local_file,它根据变量在本地计算机上创建一个文件,另一个是带有local_exec配置程序的 null_resource。

这一切都按预期工作,但我只能让它始终运行配置程序(使用始终变化的触发器,如时间戳())或仅运行一次。现在我想让它在每次(并且仅当) local_file 实际更改时运行。

有谁知道如何设置当 local_file 内容更改时更改的触发器?例如,最后更新的时间戳或校验和值?

resource "local_file" "foo" {
  content  = var.foobar
  filename = "/tmp/foobar.txt"
}

resource "null_resource" "null" {
  triggers = {
    always_run = timestamp() # this will always run
  }

  provisioner "local-exec" {
    command = "/tmp/somescript.py"
  }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*cin 6

您可以尝试使用文件哈希来指示其更改:

resource "null_resource" "null" {
  triggers = {
    file_changed = md5(local_file.foo.content)
  }

  provisioner "local-exec" {
    command = "/tmp/somescript.py"
  }
}
Run Code Online (Sandbox Code Playgroud)