Требуется запуск нескольких экземпляров для разных сред с использованием одного шаблона AWS CloudFormation - PullRequest
2 голосов
/ 16 мая 2019

У меня есть требование для создания 3 различных типов среды, каждый из которых имеет разное количество экземпляров, запускаемых с использованием одного шаблона CF в JSON. Например: 1-й ENV требует 2 экземпляра, 2-й ENV требует 4 экземпляра и 3-й ENV требует 8 экземпляров. Пожалуйста, совет

я получаю ввод от пользователя, чтобы выбрать тип ENV, и исходя из этого количество экземпляров должно быть запущено.

не может упомянуть количество экземпляров в свойствах EC2 и не может использовать Fn :: If для изменения условия

1 Ответ

1 голос
/ 17 мая 2019

Вы можете использовать Отображения в сочетании с Параметры следующим образом:

"AWSTemplateFormatVersion": "2010-09-09",
"Description": "ALB and ASG",
"Mappings": {
    "Environment": {
        "i": {
            "InstanceType": "t2.small",
            "Count": 2
        },
        "s": {
            "InstanceType": "t3.small",
            "Count": 3
        },
        "p": {
            "InstanceType": "m1.small",
            "Count": 4
        }
    }
},
"Parameters": {
    "ShortEnv": {
        "AllowedValues": [
            "i",
            "p",
            "s"
        ],
        "ConstraintDescription": "must define the current environment",
        "Description": "Environment type",
        "Type": "String"
    }
}

И затем можно использовать его в соответствующих свойствах ресурса следующим образом:

"InstanceType": {
    "Fn::FindInMap": [
        "Environment",
        {
            "Ref": "ShortEnv"
        },
        "InstanceType"
    ]
},
"DesiredCapacity": {
    "Fn::FindInMap": [
        "Environment",
        {
            "Ref": "ShortEnv"
        },
        "InstanceType"
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...