簡體   English   中英

EC2 實例創建

[英]EC2 instance creation

我正在嘗試創建多個 EC2 實例,但它們具有不同的 AMI、實例類型,並且應該位於不同的可用區中,如下所示。 我嘗試了幾種不同的方法,但無法使其工作。

locals {
  az_ami = [
    {Name = "host1", type = "t3a.medium", az = "eu_west_2a", ami_id = "ami-01234abc"},
    {Name = "host2", type = "t3a.micro", az = "eu_west_2b", ami_id = "ami-01234def"},
    {Name = "host3", type = "t3a.medium", az = "eu_west_2b", ami_id = "ami-01234gef"},
    {Name = "host4", type = "t3a.medium", az = "eu_west_2a", ami_id = "ami-01234hty"}
  ]
}

#variable "ami_id" {}

resource "aws_instance" "myinstance" {
  count    = length(local.az_ami)
  for_each = [{ for i in local.az_ami: }]

  dynamic "ec2_instance"{
    for_each = local.az_ami[count.index]
    content {
      instance_type     = "ec2_instance.value.Name"
      availability_zone = "ec2_instance.value.az"
      ami               = "ec2_instance.value.ami_id"
    }
  }
}

如果你想使用count ,那么它應該是:

resource "aws_instance" "myinstance" {

  count             = length(local.az_ami)

  instance_type     = local.az_ami[count.index].type
  availability_zone = local.az_ami[count.index].az
  ami               = local.az_ami[count.index].ami_id
  
  tags = {
    Name = local.az_ami[count.index].Name
  }
}

但是對於for_each它可能是:

resource "aws_instance" "myinstance2" {

  for_each    = {for idx, val in local.az_ami: idx => val}

  instance_type     = each.value.type
  availability_zone = each.value.az
  ami               = each.value.ami_id
  
  tags = {
    Name = each.value.Name
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM