terraform - 如何在脚本开始时在 terraform 中运行 null_resource
问题描述
我有一个用例,我从 terraform 中的本地人获取所有变量,如下所示,但在此之前,我想运行一个 null_resource 块,它将运行一个 python 脚本并将所有数据更新到本地文件中。
所以我的用例简单来说是在 terraform 脚本的开头执行一个 null_resource 块,然后运行所有其他资源块
我当前的代码示例如下:
// executing script for populating data in app_config.json
resource "null_resource" "populate_data" {
provisioner "local-exec" {
command = "python3 scripts/data_populate.py"
}
}
// reading data variables from app_config.json file
locals {
config_data = jsondecode(file("${path.module}/app_config.json"))
}
我该如何做到这一点?我所尝试的只是在本地人中添加一个触发器命令,如下所示,但即使这样也不起作用。
locals {
triggers = {
order = null_resource.populate_data.id
}
config_data = jsondecode(file("${path.module}/app_config.json"))
}
解决方案
您可以使用depends_on
resource "null_resource" "populate_data" {
provisioner "local-exec" {
command = "python3 scripts/data_populate.py"
}
}
// reading data variables from app_config.json file
locals {
depends_on = [null_resource.populate_data]
config_data = jsondecode(file("${path.module}/app_config.json"))
}
现在总是locals
会被执行populate_data
。
推荐阅读
- jinja2 - 如何用等号加入并在Jinja2中为整数添加单引号
- java - 等待 Cloud Firestore 任务结果
- sql - 如何在 SQL 插入语句中执行三元运算
- scripting - 如何使我的脚本同时适用于 Macd 和 ema 的买入和卖出指标作为 pine 脚本中的条件
- python - Streamlit 浏览器应用程序无法从 Sagemaker 终端打开
- javascript - 如何防止在javascript中刷新浏览器页面
- java - 由于异步任务,Android Studio 中的 Looper 很慢
- ios - 如何修复 react-native 中显示的错误?
- javascript - 如何使用 react-router-dom 跟踪 react-ga 事件
- c - 获取远程套接字 C / C++ Unix 的 IPv6 地址