terraform - 在删除 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"
}
}
该脚本运行,但它在配置文件被删除后运行- 它出错,因为它需要该配置文件存在才能知道要删除什么。
我将如何解决这个问题?
谢谢!
解决方案
我将销毁时间配置器移到原始资源中,效果很好:
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"
}
}
推荐阅读
- python - 改进列表理解,使其运行得更快
- angular - 移除同级容器后动画 fxFlex 宽度变化
- algorithm - 任何人都可以为这个问题提出一个有效的解决方案吗?
- java - 为什么在我实现的插入排序中处理有序数组时,普通版比特殊版慢4倍?
- java - 杰克逊 XmlMapper
- javafx - JavaFX 绘制 LinexChart
- r - 如何创建数据汇总功能?
- database - 需要帮助将表格标准化为 3NF?
- visual-studio-code - Visual Studio Code 无法找到 Git-bash
- python - Openpyxl 将 CSV 中的数字转换为 XLSX 文件中的文本