Terraform - 数据依赖于数据

Man*_*oor 4 json terraform

我在我的 terraform 代码中使用 data external 和 data local_file 。data external 执行脚本并创建 json 文件。现在我的数据 local_file 必须读取 json 文件。

data "external" "example" {
   program = ["python", "XXXXX.py", "${var.fileName}"]
}

data "local_file" "dashboard" {
    filename = "${path.module}/dashboardData.json"
}
Run Code Online (Sandbox Code Playgroud)

这里的数据 local_file 依赖于 json 文件的外部数据。

周围有工作吗?

yda*_*coR 7

如果您的外部数据源输出文件名,您可以使用 Terraform 的插值来强制两个数据源之间的依赖关系。

python XXXXX.py fileName因此,假设给出或类似的输出{"filename": "dashboardData.json"},那么你可以使用类似这样的东西:

data "external" "example" {
  program = ["python", "XXXXX.py", "${var.fileName}"]
}

data "local_file" "dashboard" {
  filename = "${path.module}/${data.external.example.result.filename}"
}
Run Code Online (Sandbox Code Playgroud)

由于local_file数据源现在引用了external数据源,因此它将强制 Terraform 等待external数据源完成。

另一种方法是使用以下方法在它们之间设置显式依赖关系depends_on

data "external" "example" {
  program = ["python", "XXXXX.py", "${var.fileName}"]
}

data "local_file" "dashboard" {
  filename   = "${path.module}/dashboardData.json"
  depends_on = [data.external.example]
}
Run Code Online (Sandbox Code Playgroud)