【问题标题】:Terraform - output instance ids from aws instance resource - one at a timeTerraform - 从 aws 实例资源输出实例 ID - 一次一个
【发布时间】:2018-11-06 01:10:59
【问题描述】:

我有以下资源来创建 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}"

但我确实有特定的理由想要一件一件得到它们。

有人可以建议/帮助我吗?

【问题讨论】:

    标签: amazon-ec2 interpolation terraform terraform-provider-aws


    【解决方案1】:

    你可以像这样使用element

    output "server_id1" {
      value = "${element(aws_instance.prod_server.*.id, 0)}"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-14
      • 2020-11-18
      • 2023-01-07
      • 2019-07-31
      • 2017-08-07
      • 1970-01-01
      • 2012-03-01
      • 2017-07-10
      相关资源
      最近更新 更多