amazon-ec2 - Terraform - 从 aws 实例资源输出实例 ID - 一次一个
问题描述
我有以下资源来创建 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}"
但我确实有一个特定的理由想要一一得到它们。
有人可以建议/帮助我吗?
解决方案
你可以element
这样使用:
output "server_id1" {
value = "${element(aws_instance.prod_server.*.id, 0)}"
}
推荐阅读
- java - Android Java - 为什么在 60 后杀死服务器
- mysql - 如何通过flutter更新mysql中的数据
- mysql - 使用 for 循环从数据库中提取元素只给出一个结果而不是更多
- javascript - 带有隐藏输入的按钮
- opengl - OpenGL程序纹理抗锯齿
- angular - 如何读取或获取 Json 对象内的 Json 数组
- docker - rpc 错误:代码 = 未知 desc = 拉取镜像配置时出错:拉取 docker 镜像时出现未知 blob
- c++ - 错误 C2664:无法将参数 1 从“const char [14]”转换为“char”
- python - 为什么使用 filter() 给出了我想要的,但使用 get() 会引发错误
- c++ - Lambda 捕获,[ ] vs [&] 并调用类对象的成员函数