首页 > 解决方案 > 在删除 local_file 之前运行 Destroy-Time Provisioner

问题描述

我有一个 Terraform 脚本,它创建一个config.json文件,然后运行一个使用该文件的命令config.json

resource "local_file" "config" {
  # Output vars to config
  filename = "config.json"
  content  = "..."

  # Deploy using config
  provisioner "local-exec" {
    command     = "deploy"
  }
}

这一切都很好,但是当我运行时,terraform destroy我想运行一个不同的命令 - 我尝试null_resource通过添加以下内容来使用销毁时间配置器来执行此操作:

resource "null_resource" "test" {
    provisioner "local-exec" {
        when        = "destroy"
        command     = "delete"
    }
}

该脚本运行,但它在配置文件被删除后运行- 它出错,因为它需要该配置文件存在才能知道要删除什么。

我将如何解决这个问题?

谢谢!

标签: terraform

解决方案


我将销毁时间配置器移到原始资源中,效果很好:

resource "local_file" "config" {
  # Output vars to config
  filename = "config.json"
  content  = "..."

  # Deploy using config
  provisioner "local-exec" {
    command     = "deploy"
  }

  # Delete on_destroy
  provisioner "local-exec" {
        when        = "destroy"
        command     = "delete"
  }
}

推荐阅读