Terraform - 来自 aws 实例资源的输出实例 ID - 一次一个
Terraform - output instance ids from aws instance resource - one at a time
我有以下资源可以创建 2 个实例:
`resource "aws_instance" "prod_server" {
count = "${var.instance_count}"
instance_type = "${var.instance_type}"
ami = "${data.aws_ami.server_ami.id}"
key_name = "${aws_key_pair.prod_auth.id}"
vpc_security_group_ids = ["${var.vpc_security_group}"]
subnet_id = "${element(var.subnets, count.index)}"
user_data = "${data.template_file.user-init.*.rendered[count.index]}"
tags {
Name = "prod_server-${count.index+1}"
}
}`
其中 count 的值为 2。
我想使用单独的输出资源为每个实例输出实例 ID,如下所示:
`output "server_id1" {
value = "${aws_instance.prod_server.0.id}"
}
output "server_id2" {
value = "${aws_instance.prod_server.1.id}"
}`
但是我不断收到以下错误:
Resource 'aws_instance.prod_server' not found for variable 'aws_instance.prod_server.1.id'
我意识到我可以使用以下方法立即获取 ID:
"${aws_instance.prod_server.*.id}"
但我确实有一个特定的原因想要一个一个地得到它们。
有人可以 advise/help 我出来吗?
您可以这样使用 element
:
output "server_id1" {
value = "${element(aws_instance.prod_server.*.id, 0)}"
}
我有以下资源可以创建 2 个实例:
`resource "aws_instance" "prod_server" {
count = "${var.instance_count}"
instance_type = "${var.instance_type}"
ami = "${data.aws_ami.server_ami.id}"
key_name = "${aws_key_pair.prod_auth.id}"
vpc_security_group_ids = ["${var.vpc_security_group}"]
subnet_id = "${element(var.subnets, count.index)}"
user_data = "${data.template_file.user-init.*.rendered[count.index]}"
tags {
Name = "prod_server-${count.index+1}"
}
}`
其中 count 的值为 2。
我想使用单独的输出资源为每个实例输出实例 ID,如下所示:
`output "server_id1" {
value = "${aws_instance.prod_server.0.id}"
}
output "server_id2" {
value = "${aws_instance.prod_server.1.id}"
}`
但是我不断收到以下错误:
Resource 'aws_instance.prod_server' not found for variable 'aws_instance.prod_server.1.id'
我意识到我可以使用以下方法立即获取 ID:
"${aws_instance.prod_server.*.id}"
但我确实有一个特定的原因想要一个一个地得到它们。
有人可以 advise/help 我出来吗?
您可以这样使用 element
:
output "server_id1" {
value = "${element(aws_instance.prod_server.*.id, 0)}"
}