【发布时间】:2021-04-26 09:44:07
【问题描述】:
我正在使用外部数据源,以便使用程序参数执行 cURL 命令:
data "external" "curl_zip" {
program = ["bash", "-c", "curl", ...]
}
我正在管道中运行 Terraform,因此我需要检索每个 terraform 计划的数据。
在我创建一个需要执行 curl 的新资源之前,它似乎运行良好。但是看起来 Terraform 只是在刷新,所以在第一个计划之后没有执行程序命令:
data.external.curl_zip["something.json"]: Refreshing state... [id=-]
我的问题是:即使在刷新期间,有没有办法在每个计划上重新运行程序参数?
PS:我已经尝试使用null_resource 代替local-exec,结果不是这里的解决方案,因为(出于某种原因)我还需要使用archive_file 数据源来创建zips 文件,所以我的GCP应用引擎资源可以读取它们,并且在terraform apply之后正在执行local-exec,这不起作用,因为在计划期间正在刷新或创建数据源。
【问题讨论】:
-
已经是这样了。任何时候刷新状态,程序都会被执行。你能更清楚地解释你所看到的让你认为情况并非如此的事情吗?如果可以的话,您能否提供一个 minimal reproducible example 来展示这种行为?
-
因为我收到一条错误消息,提示我应该使用 curl 获取的文件丢失(存档文件数据源需要)+ 我没有看到 curl 输出。明天我会尝试提供一个最小的可重现示例。
标签: google-cloud-platform terraform terraform-provider-gcp