考虑一个terraform模块:

module "blah-asg" {
  source = "asg"

  asg_max_size       = 1
  asg_min_size       = "${var.min_blah}"
  ...
}


我的问题

如何从中output变量?

我尝试了什么

output "blah-es-asg" {
    value = "${asg.blah-asg.arn}"
}


失败了


获取插件时出错:模块根目录:发生1个错误:
*输出'blah-asg':变量asg.blah-asg.arn中引用的未知资源'asg.blah'


我的问题

如何在Terraform中输出模块字段?

最佳答案

因此,首先,您需要在模块asg中设置输出:

$ cat asg/output.tf

output "blah-es-asg" {
    value = "${aws_autoscaling_group.blah-asg.arn}"
}


然后使用source = "asg"调用模块:

module "blah-asg" {
  source = "asg"

  asg_max_size       = 1
  asg_min_size       = "${var.min_blah}"
  ...
}


您现在可以使用以下格式以当前代码输出它:

output "blah-es-asg" {
    value = "${module.blah-asg.blah-es-asg}"
}

09-04 05:57