Terraform-模块之间的依赖关系

Terraform-模块之间的依赖关系,terraform,Terraform,我试图告诉terraform资源依赖于其他资源。问题是这些资源在不同的模块中。依赖资源如下所示: variable dependency { type = "list" default = [] } resource "docker_container" "web" { depends_on = "${var.dependency}" ... 然后我“调用”模块: module "wordpress" { source = "../modules/wordpress" d

我试图告诉terraform资源依赖于其他资源。问题是这些资源在不同的模块中。依赖资源如下所示:

variable dependency {
  type = "list"
  default = []
}

resource "docker_container" "web" {
  depends_on = "${var.dependency}"
...
然后我“调用”模块:

module "wordpress" {
  source = "../modules/wordpress"
  dependency = [ "${module.provision.res}" ]
}
我得到了一个错误:

  on ../modules/wordpress/main.tf line 11, in resource "docker_container" "web":
  11:   depends_on = "${var.dependency}"

A static list expression is required.
看起来我不能在“dependens_on”中使用变量。如何在模块之间创建依赖关系

PS:我所依赖的资源是一个null_资源,它提供了一些资源调配。每次更改时,我都需要重新生成一些内容。

要解决此错误:“需要一个静态列表表达式。”

您需要用[]包装var.dependency:

resource "docker_container" "web" {
  depends_on = ["${var.dependency}"]
...

更新:正如@Maciej Wawrzyńczuk指出的那样,[var.dependency]在这种情况下就可以使用上述语法[“${var.dependency}”]也将在0.12中作为向后兼容性使用,但如果运行tf 0.12,您可能希望以新的方式执行此操作。

不确定是否可以依赖变量。这可能会有所帮助。
dependens\u on
用于非隐式生成的资源之间的依赖关系。几乎。“依赖=[var.dependency]”工作正常: