![](/img/trans.png)
[英]Creating EC2 instances in multiple subnets with Terraform using for each
[英]Launch EC2 servers in multiple subnets using count with terraform
我有一個用例,我設置了變量 instance_count = 3,我有 2 個 Private_subnets,這是一個列表 [“subnet-id-A”,“subnet-id-B”],我希望我的 terraform 代碼動態生成本地 map 或可以這樣的列表
subnets = {
01 = subnet-id-A
02 = subnet-id-B
03 = subnet-id-A
}
OR
subnets = ["subnet-id-A","subnet-id-B","subnet-id-A"]
如果實例數變為 4,則可能是這樣的
subnets = {
01 = subnet-id-A
02 = subnet-id-B
03 = subnet-id-A
04 = subnet-id-B
}
OR
subnets = ["subnet-id-A","subnet-id-B","subnet-id-A","subnet-id-B"]
如果實例數變為 2,則可能是這樣的
subnets = {
01 = subnet-id-A
02 = subnet-id-B
}
OR
subnets = ["subnet-id-A","subnet-id-B"]
Subnet_ids 是一個包含所有私有子網的列表。
這是代碼
locals {
formatted_count = [for index in range(var.instance_count) : format("0%s", index + 1)]
instances_count = toset(local.formatted_count)
}
module "ec2" {
for_each = local.instances_count
source = "terraform-aws-modules/ec2-instance/aws"
version = "3.2.0"
name = var.name
ami = var.ami
instance_type = var.instance_type
key_name = var.key_name
monitoring = var.monitoring
tags = var.tags
vpc_security_group_ids = var.vpc_security_group_ids
subnet_id = element(var.subnet_ids,each.value - 1)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.