【问题标题】:Conditionally triggering of Terraform local_exec provisioner based on local_file changes基于 local_file 更改有条件地触发 Terraform local_exec 供应商
【发布时间】:2021-08-28 17:42:06
【问题描述】:

我正在使用 terraform 0.14 并有 2 个资源,一个是 local_file,它根据变量在本地计算机上创建文件,另一个是带有 local_exec 供应商。

这一切都按预期工作,但我只能始终运行配置程序(使用始终变化的触发器,如 timestamp())或只运行 一次强>。现在我想让它在每次(并且仅当)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"
  }
}

【问题讨论】:

    标签: terraform


    【解决方案1】:

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

    resource "null_resource" "null" {
      triggers = {
        file_changed = md5(local_file.foo.content)
      }
    
      provisioner "local-exec" {
        command = "/tmp/somescript.py"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2014-02-24
      • 2020-05-30
      • 2020-07-29
      相关资源
      最近更新 更多