我很想在 Terraform 的 count/for_each 函数方面得到一些帮助。
目标是将多个 json 文件(当前两个)读入映射列表,并使用特定命名约定创建特定数量的 aws_instances。
配置
cat test_service_1.json
{
"instance_name": "front",
"instance_count": "3",
"instance_type": "t2.micro",
"subnet_type": "private",
"elb": "yes",
"data_volume": ["no", "0"]
}
cat test_service_2.json
{
"instance_name": "back",
"instance_count": "3",
"instance_type": "t2.micro",
"subnet_type": "private",
"elb": "yes",
"data_volume": ["no", "0"]
}
cat main.tf
locals {
services = [jsondecode(file("${path.module}/test_service_1.json")),
jsondecode(file("${path.module}/test_service_2.json"))]
}
resource "aws_instance" "test_instance" {
ami = "amzn-ami-hvm-2018.03.0.20200206.0-x86_64-gp2"
instance_type = "t2.micro"
tags = merge(
map("Name", "prod-app-?"),
map("env", "prod")
)
}
Run Code Online (Sandbox Code Playgroud)
最终我希望代码遍历两个 json 文件并创建:
prod-front-1
prod-front-2
prod-front-3
prod-back-1
prod-back-2 …Run Code Online (Sandbox Code Playgroud)