terraform aws从1个模块传递实例列表到另一个
问题描述:
我在1个模块中创建了2个实例,现在我需要将这2个实例附加到使用另一个模块(相同文件)创建的ELB--这可能不需要手动指定他们?terraform aws从1个模块传递实例列表到另一个
module "instances" {
source = "../../../../modules/ec2"
ami = "ami...."
number_of_instances = 2
instance_type = "t2.micro"
}
module "elb" {
source = "../../../../modules//elb"
name = "some elb"
instances = ["???"] #something like ["${module.ec2.instances.id}"]?
}
答
首先,定义输出的EC2模块:
output "instance_ids" {
value = ["${aws_instance.web.*.id}"]
}
注:资源名称web
就是一个例子。请在模块中指定实际的资源名称。
接下来,声明列表中的变量您ELB模块:
variable "instances" {
type = "list"
}
最后,EC2模块的输出传递到ELB模块:
module "instances" {
source = "../../../../modules/ec2"
ami = "ami...."
number_of_instances = 2
instance_type = "t2.micro"
}
module "elb" {
source = "../../../../modules/elb"
name = "some elb"
instances = ["${module.instances.instance_ids}"]
}
感谢,不知道你能以这种方式使用输出 – jdoe