在创建实际的lambda资源之前,我需要从URL下载lambda存档文件,并且在运行terraform destroy时需要删除此文件。基本上是从远程URL创建的本地文件资源。我目前使用null_resource
和local-exec
的预配器来完成它,如下所示。但是当我运行terraform destroy时,这不会删除文件。有更好的方法吗?
resource "null_resource" "lambda_jar" {
triggers = {
on_version_change = "${var.lambda_archive_version}"
}
provisioner "local-exec" {
command = "curl -o lambda.jar ${var.server_url}/${var.lambda_archive_version}.jar"
}
}
答案 0 :(得分:1)
有趣的用例...我自己还没有尝试过,但是我敢肯定,下面的两个选项之一将允许您完成此操作。
when = destroy
一起使用另一个本地执行配置器:resource "null_resource" "lambda_jar" {
triggers = {
on_version_change = "${var.lambda_archive_version}"
}
provisioner "local-exec" {
command = "curl -o lambda.jar ${var.server_url}/${var.lambda_archive_version}.jar"
}
provisioner "local-exec" {
when = destroy
command = "$YOUR_CURL_DELETE_COMMAND"
}
}