Terraform:从模块输出字段 代码
考虑一个地形模块:Terraform:从模块输出字段 代码,terraform,Terraform,考虑一个地形模块: module "blah-asg" { source = "asg" asg_max_size = 1 asg_min_size = "${var.min_blah}" ... } 我的问题 如何从中提取变量 我试过什么 以失败告终 获取插件时出错:模块根目录:发生1个错误: *输出“blah asg”:变量asg.blah-asg.arn中引用的未知资源“asg.blah” 我的问题 如何在Terraform中输出模块字段?模块本
module "blah-asg" {
source = "asg"
asg_max_size = 1
asg_min_size = "${var.min_blah}"
...
}
我的问题
如何从中提取变量
我试过什么
以失败告终
获取插件时出错:模块根目录:发生1个错误:
*输出“blah asg”:变量asg.blah-asg.arn中引用的未知资源“asg.blah”
我的问题
如何在Terraform中输出模块字段?模块本身不知道名称
blah asg
-这只是在调用它的脚本中-实际上,可以使用不同的名称和参数多次调用它
输出应该只引用模块中的内容,就像您在同一模块中的其他地方一样。例如,如果要输出以下资源的arn:
resource "aws_lb" "test" {
# ...
}
您可以使用:
output "blah-es-asg" {
value = "${aws_lb.test.arn}"
}
请注意,输出是沿着模块代码的其余部分定义的,而不是在调用它的脚本中定义的
然后,调用模块的脚本可以使用此输出作为
${module.blah asg.blah es asg}
,因此首先,您需要在模块asg
中设置输出:
$ cat asg/output.tf
output "blah-es-asg" {
value = "${aws_autoscaling_group.blah-asg.arn}"
}
module "blah-asg" {
source = "asg"
asg_max_size = 1
asg_min_size = "${var.min_blah}"
...
}
然后使用source=“asg”
调用模块:
您现在可以使用以下格式以当前代码输出:
output "blah-es-asg" {
value = "${module.blah-asg.blah-es-asg}"
}
这是非常有帮助的,应该是一个被接受的答案。It’这对你给出的解释和走查很有帮助。如果原始海报使用的东西比空话等更好,那就更清楚了。我花了一分钟才改变了现实生活。。但是谢谢你帮助别人!!!请考虑接受处理你的问题的帖子(只是一个友好的提醒)。
output "blah-es-asg" {
value = "${module.blah-asg.blah-es-asg}"
}