Ошибка проверки шаблона: Ошибка формата шаблона: нераспознанные типы ресурсов: [AWS::EC2::KeyPair::KeyName]

Я использую приведенный ниже шаблон формирования для создания машины EC2 и установки упругого поиска на ней с использованием пользовательских данных.

У меня есть пара ключей с именем "novus1" в моей учетной записи. Когда я пытаюсь создать стек. Я получаю нераспознанные типы ресурсов: [AWS::EC2::KeyPair::KeyName].

Есть ли проблема в шаблоне JSON ниже? Любая поддержка приветствуется.

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Basic template for Novus",
    "Resources": {
        "novus1": {
            "Description": "Name of an existing EC2 KeyPair to enable SSH access to the web server",
            "Type": "AWS::EC2::KeyPair::KeyName"
        },
        "Ec2Instance1": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "InstanceType": "t2.micro",
                "ImageId": "ami-4836a428",
                "KeyName": "novus1",
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": ["", [
                            "rpm -ivh elasticsearch-5.2.1.rpm"
                        ]]
                    }
                }
            }
        }
    }
}

1 ответ

Решение

novus1 имя ключа должно быть в Parameters раздел вашего шаблона. Вы можете обратиться к нему с помощью Ref: объект:

{   
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Basic template for Novus",
    "Parameters": {
        "novus1": {
            "Type": "AWS::EC2::KeyPair::KeyName",
            "Description": "Name of an existing EC2 KeyPair to enable SSH access to the web server"
        }
    }
    "Resources": {
        "Ec2Instance1": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "InstanceType": "t2.micro",
                "ImageId": "ami-4836a428",
                "KeyName": {
                    "Ref": "novus1"
                },
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": ["", [
                            "rpm -ivh elasticsearch-5.2.1.rpm"
                        ]]
                    }
                }
            }
        }
    }
}

Смотрите документацию для большего количества примеров на AWS::EC2::KeyPair::KeyName тип параметра.

Другие вопросы по тегам