terraform aws 将实例列表从一个模块传递到另一个模块
terraform aws pass instance list from 1 module to another
我在 1 个模块中创建 2 个实例,现在我需要将这 2 个实例附加到使用另一个模块(同一文件)创建的 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 = ["???"] #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}"]
}
我在 1 个模块中创建 2 个实例,现在我需要将这 2 个实例附加到使用另一个模块(同一文件)创建的 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 = ["???"] #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}"]
}