terraform - Terraform - 模块之间的依赖关系
问题描述
我试图告诉 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 ,它提供了一些配置。每次更改时我都需要重建一些东西。
解决方案
解决错误:“需要静态列表表达式”。
您需要用 [] 包装 var.dependency:
resource "docker_container" "web" {
depends_on = ["${var.dependency}"]
...
更新:上面的语法适用于terraform<0.12。对于terraform >=0.12,正如@Maciej Wawrzyńczuk 指出的那样,[var.dependency]只会在这种情况下工作。["${var.dependency}"]也将在 0.12 中作为向后兼容性工作,但如果您运行 tf 0.12,您可能希望以新方式进行操作。
推荐阅读
- ubuntu - catkin_make 总是试图制作一个特定的包
- html - li:marker 和 text 在 firefox 上不在同一行
- gradle - 带有 gradle 构建的 ant junit
- typescript - 如何用 mocha 模拟 firestore
- django - NoReverseMatch,但它存在并被发现
- cv2 - 绘制矩形太厚时的OpenCV厚度
- ubuntu - 安装本地版本的 postman-to-k6 会导致 npm 错误
- r - Month Wise 数据合并
- jquery - 如何将迷你购物车切换到 Woocommerce
- c# - 关于 StyleCop 的一些问题