Terraform 地形-数据依赖于数据

Terraform 地形-数据依赖于数据,terraform,Terraform,我在我的地形代码中使用外部数据和本地数据_文件。 外部数据执行脚本并创建json文件。现在,我的数据本地_文件必须读取json文件 data "external" "example" { program = ["python", "XXXXX.py", "${var.fileName}"] } data "local_file" "dashboard" { filename = "${path.module}/dashboardData.json" } 这里的数据本地_文件依赖

我在我的地形代码中使用外部数据和本地数据_文件。 外部数据执行脚本并创建json文件。现在,我的数据本地_文件必须读取json文件

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

data "local_file" "dashboard" {
    filename = "${path.module}/dashboardData.json"
}
这里的数据本地_文件依赖于json文件的外部数据

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

data "local_file" "dashboard" {
    filename = "${path.module}/dashboardData.json"
}

有解决办法吗?

如果外部数据源输出文件名,则可以使用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}"
}
因为本地_文件数据源现在引用外部数据源,它将强制Terraform等待外部数据源完成

另一种方法是使用depends_-on设置它们之间的显式依赖关系:


两个中第一个按预期工作。第二个是抛出一些错误。感谢您的帮助。第二个表单应该是depends_on=[data.external.example]错误是需要一个静态列表表达式,这表明您需要一个列表引用。