在Terraform中运行销毁时处理外部数据源

时间:2019-08-02 13:45:14

标签: terraform

对于外部数据源,运行terraform destroy时需要运行bash命令。

是否有办法触发此事件?

data "external" "token" {
  program = ["sh", "${path.module}/get_token.sh"]
query = {
    controller = "${packet_device.controller.network.0.address}"
  }
}

也许使用if计数器?但是以某种方式确保它与destroy一起运行

  count = var.myInitExData ? 1 : 0

1 个答案:

答案 0 :(得分:1)

不确定是否可行,但是您可以尝试将Destroy-Time provisionernull_resource一起使用:


resource "null_resource" "token" {

  triggers = {
    token = data.external.token.result
  }

  provisioner "local-exec" {
    when    = "destroy"
    working_dir = path.module

    command = "destroy_time_script.sh"
    interpreter = ["sh"]
  }
}