Terraform - 模块之间的依赖关系
Posted
技术标签:
【中文标题】Terraform - 模块之间的依赖关系【英文标题】:Terraform - dependency between modules 【发布时间】:2019-09-05 13:57:28 【问题描述】:我正在尝试告诉 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.
看起来我不能在“depends_on”中使用变量。如何创建模块之间的依赖关系?
PS:我依赖的资源是一个 null_resource,它提供了一些配置。每次更改时我都需要重建一些东西。
【问题讨论】:
不确定是否可以依赖变量。也许这个GitHub issue 会有所帮助。depends_on
用于非隐式生成的资源之间的依赖关系。
【参考方案1】:
解决错误:“需要静态列表表达式。”
你需要用 [] 包装 var.dependency:
resource "docker_container" "web"
depends_on = ["$var.dependency"]
...
更新:上述语法适用于 terraform。 对于 terraform >=0.12,正如@Maciej Wawrzyńczuk 指出的那样,[var.dependency] 仅适用于这种情况。 ["$var.dependency"] 也可以在 0.12 中向后兼容,但如果您运行 tf 0.12,您可能希望以新的方式进行。
【讨论】:
差不多。 “depends_on = [var.dependency]”工作正常。 :)以上是关于Terraform - 模块之间的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章