我试图告诉 terraform 资源依赖于其他资源。问题是资源位于不同的模块中。依赖资源看起来像这样:
variable dependency {
type = "list"
default = []
}
resource "docker_container" "web" {
depends_on = "${var.dependency}"
...
Run Code Online (Sandbox Code Playgroud)
然后我“调用”模块:
module "wordpress" {
source = "../modules/wordpress"
dependency = [ "${module.provision.res}" ]
}
Run Code Online (Sandbox Code Playgroud)
我得到了错误:
on ../modules/wordpress/main.tf line 11, in resource "docker_container" "web":
11: depends_on = "${var.dependency}"
A static list expression is required.
Run Code Online (Sandbox Code Playgroud)
看起来我不能在“depends_on”中使用变量。如何在模块之间创建依赖关系?
PS:我依赖的资源是一个 null_resource,它提供了一些配置。每次更改时我都需要重建一些东西。
我的集合包含空格的键,我不知道如何从js脚本访问它.例如:
c = db.collection.find()
while(c.hasNext()) {
print(c.next().'my key with spaces');
}
Run Code Online (Sandbox Code Playgroud)
不行.怎么做?
我需要使用非标准分隔符打印参数的函数(而不是由创建的空格my_func() { echo "$@"; }
).像这样的东西:
$ my_func foo bar baz
foo;bar;baz
Run Code Online (Sandbox Code Playgroud)
参数数量各不相同,我不需要尾随分隔符.有任何想法吗?
我试图做一个简单的脚本,查询我的ec2实例,并获取与我的过滤器匹配的实例的公共dns名称。我的第一枪:
#!/bin/bash
aws ec2 describe-instances \
--filters "Name=tag:app,Values=swarm-cluster" \
"Name=tag:role,Values=manager" \
--query "Reservations[*].Instances[*].PublicDnsName"
Run Code Online (Sandbox Code Playgroud)
几乎可以用,但是我得到了一些难看的东西:
[
[
""
],
[
"ec2-xxx-xxx-xxx-xxx.venus-central-1.compute.amazonaws.com"
]
]
Run Code Online (Sandbox Code Playgroud)
我只想列出FQDN,每行一个。如何格式化输出?我知道,我可以使用tr,sed等来完成此操作,但我想使用更复杂的方法。:)