По крайней мере, один элемент ресурсов должен быть определен ошибка в формировании облака ec2

I tried other templates from the net but still getting the same error. Error

сообщение: шаблон содержит ошибки .: ошибка формата шаблона: должен быть определен хотя бы один элемент ресурсов.

{
"AWSTemplateFormatVersion" : "2010-09-09",

"Description" : "TTND AWS CloudFormation template to launch first instance",

"Parameters" : {

"KeyName" : {
"Description" : "EC2 Key Pair for SSH Access",
"Default" : "sample",
"MinLength": "1",
"MaxLength": "64",
"AllowedPattern" : "[-_ a-zA-Z0-9]*",
"ConstraintDescription" : "can contain only alphanumeric characters, spaces, dashes and underscores."
},
"InstanceType" : {
"Description" : "Instance1 EC2 instance type",
"Type" : "String",
"Default" : "t2.micro",
"AllowedValues" : [ "t2.micro","m1.small","m1.medium","m1.large"],
"ConstraintDescription" : "must be a valid EC2 instance type."
}
},
"Mappings" : {
    "AWSInstanceMapping" : {
      "t2.micro"    : { "Arch" : "64" },
      "t2.small"    : { "Arch" : "64" },
      "t2.medium"   : { "Arch" : "64" },
      "t2.large"    : { "Arch" : "64" },
      "m3.medium"   : { "Arch" : "64" },
      "m4.large"   : { "Arch" : "64" },
      "m4.xlarge"  : { "Arch" : "64" },
      "m4.2xlarge"  : { "Arch" : "64" }
    }
    },

    "InstanceAMI" : {
      "us-east-1"      : { "64" : "ami-09ca8e1e" }
    },

Я пробовал другие шаблоны для сети, но получаю ту же ошибку

"Resources" : {

    "VPC" : {
      "Type" : "AWS::EC2::VPC",
      "Properties" : {
        "CidrBlock" : "10.0.0.0/16",
        "Tags" : [
          {"Key" : "Application", "Value" : { "Ref" : "AWS::StackId"} },
          { "Key": "Name", "Value": "Project_VPC"},
          {"Key" : "Network", "Value" : "Public" }
        ]
      }
    },

    "PublicSubnet" : {
      "Type" : "AWS::EC2::Subnet",
      "Properties" : {
        "VpcId" : { "Ref" : "VPC" },
        "CidrBlock" : "10.0.0.0/24",
        "Tags" : [
          {"Key" : "Application", "Value" : { "Ref" : "AWS::StackId"} },
          {"Key" : "Network", "Value" : "Public" },
          { "Key": "Name", "Value": "Project_Public_Subnet"}
        ]
      }
    },

    "InternetGateway" : {
      "Type" : "AWS::EC2::InternetGateway",
      "Properties" : {
        "Tags" : [
          {"Key" : "Application", "Value" : { "Ref" : "AWS::StackId"} },
          {"Key" : "Network", "Value" : "Public" },
          { "Key": "Name", "Value": "Project_Internetgateway"}
        ]
      }
    },

    "AttachGateway" : {
       "Type" : "AWS::EC2::VPCGatewayAttachment",
       "Properties" : {
         "VpcId" : { "Ref" : "VPC" },
         "InternetGatewayId" : { "Ref" : "InternetGateway" }
       }
    },
"PublicRouteTable" : {
      "Type" : "AWS::EC2::RouteTable",
      "Properties" : {
        "VpcId" : {"Ref" : "VPC"},
        "Tags" : [
          {"Key" : "Application", "Value" : { "Ref" : "AWS::StackId"} },
          {"Key" : "Network", "Value" : "Public" },
          { "Key": "Name", "Value": "cloudwords_public_routetable"}
        ]
      }
    },                                                           

часть кода, которую я удалил для публикации, дает большую ошибку кода, поэтому

"Outputs" : {
 "InstanceId" : {
 "Description" : "InstanceId of the newly created instance",
 "Value" : { "Ref" : "Instance" }
 },
    }
}

Если у кого-то есть простой шаблон запуска экземпляра AWS EC2 с использованием шаблона CloudFormation, опубликуйте его.

См. также:  Использование разных учетных данных aws в конвейере Bitbucket

Похоже, вы скопировали это из какого-то примера, но скопировали только верхнюю часть примера.   —  person pallavi    schedule 07.10.2018

Да, я скопировал с этого сайта tothenew.com/blog/ … но я не могу опубликовать здесь полный код, так как код такой большой   —  person pallavi    schedule 07.10.2018

Его шаблон очень хорош. Охватывает множество деталей для инстансов EC2 и VPC. Какая у вас проблема? Обратите внимание, что в Интернете есть тысячи примеров CloudFormation. Google Search — ваш друг.   —  person pallavi    schedule 07.10.2018

да, этот шаблон хорош и охватывает многие вещи … но когда я выбираю шаблон дизайна, появляется эта ошибка. По крайней мере, один член ресурсов должен быть определен. в любом случае я нашел другой шаблон, он также дает ту же ошибку, когда я выбираю вариант шаблона дизайна. Затем я прикрепил файл, просмотрев его, и он работает. Не знаю, почему шаблон дизайна не работает   —  person pallavi    schedule 08.10.2018

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. pallavi

    Похоже, что в ваших примерах не определены какие-либо AWS::EC2::Instance ресурсы, которые указывают CloudFormation на подготовку экземпляров EC2.

    Вот очень минималистичный шаблон CloudFormation, который создаст один экземпляр t2.micro. Посетите ресурс AWS :: EC2 :: Instance определение, чтобы узнать, какие свойства можно добавить для его настройки.

    {
      "AWSTemplateFormatVersion": "2010-09-09",
      "Resources": {
        "ExampleEc2Instance": {
          "Type": "AWS::EC2::Instance",
          "Properties": {
            "InstanceType": "t2.micro",
            "ImageId" : "ami-a0cfeed8"
          }
        }
      }
    }
    

    Найти допустимый AMI для конкретной операционной системы, конфигурации и региона может быть немного сложно. В этом пошаговом руководстве обсуждается стратегия автоматизации поиска AMI с помощью AWS Lambda.

    по-прежнему появляется та же ошибка. Должен быть определен хотя бы один член ресурсов. ImageId: ami-a0cfeed8 — это ami, который мне нужно создать первым person pallavi; 07.10.2018

    AMI ami-a0cfeed8 уже создан в Орегоне. Вы можете увидеть некоторые из них по умолчанию в EC2 — ›Launch Instance (ami- [шестнадцатеричный] справа от имен AMI — это идентификаторы AMI). Он должен работать, если вы установите для этого AMI допустимый в вашем регионе, сохраните шаблон в файл и перейдите в CloudFormation — ›Create Stack -› Загрузите шаблон в Amazon S3, а затем продолжите присвоение имени / создание стека. person pallavi; 07.10.2018

    возможность создать Ec2 по вашим шагам, но когда я выбираю шаблон дизайна в Json, появляется эта ошибка … Должен быть определен хотя бы один член ресурсов person pallavi; 08.10.2018

  2. pallavi

    В вашем шаблоне есть несколько проблем. @Tom дал бы несколько хороших советов.

    Минимум, который вам нужен для AMI, — это. После нескольких исправлений в вашем шаблоне и добавления фрагмента ниже я смог запустить ваш шаблон. Дополнительные примеры см. Здесь: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html

    "Resources" : {
      "MyEC2Instance" : {
        "Type" : "AWS::EC2::Instance",
        "Properties" : {
          "ImageId" : "ami-0ff8a91507f77f867"
        }
      }
    }
    

    ваш шаблон с фрагментом кода экземпляра EC2:

    {
        "AWSTemplateFormatVersion" : "2010-09-09",
    
        "Description" : "TTND AWS CloudFormation template to launch first instance",
    
        "Parameters" : {
    
              "KeyName" : {
                  "Description" : "EC2 Key Pair for SSH Access",
                  "Type": "String",
                  "Default" : "sample",
                  "MinLength": "1",
                  "MaxLength": "64",
                  "AllowedPattern" : "[-_ a-zA-Z0-9]*",
                  "ConstraintDescription" : "can contain only alphanumeric characters, spaces, dashes and underscores."
              },
              "InstanceType" : {
                  "Description" : "Instance1 EC2 instance type",
                  "Type" : "String",
                  "Default" : "t2.micro",
                  "AllowedValues" : [ "t2.micro","m1.small","m1.medium","m1.large"],
                  "ConstraintDescription" : "must be a valid EC2 instance type."
              }
        },
        "Mappings" : {
            "AWSInstanceMapping" : {
              "t2.micro"    : { "Arch" : "64" },
              "t2.small"    : { "Arch" : "64" },
              "t2.medium"   : { "Arch" : "64" },
              "t2.large"    : { "Arch" : "64" },
              "m3.medium"   : { "Arch" : "64" },
              "m4.large"   : { "Arch" : "64" },
              "m4.xlarge"  : { "Arch" : "64" },
              "m4.2xlarge"  : { "Arch" : "64" }
            }
        },
    
        "Resources" : {
          "MyEC2Instance" : {
            "Type" : "AWS::EC2::Instance",
            "Properties" : {
              "ImageId" : "ami-0ff8a91507f77f867"
            }
          }  
        }
    }
    

    получение такой же ошибки. ImageId: ami-a0cfeed8 запутался по этому поводу. ami, который я создал, мне нужно взять этот идентификатор, иначе ?? person pallavi; 07.10.2018

    Замените это идентификатором AMI по вашему выбору. Либо созданный вами, либо созданный на Торговой площадке. person pallavi; 08.10.2018

  3. pallavi

    Вы попросили простой шаблон для запуска экземпляра EC2, так что готово. Пожалуйста, помните, что это только базовый вариант, и его можно расширить, добавив гораздо больше опций. Пожалуйста, дайте мне знать, если вам нужна конкретная помощь здесь. Удачи.

    {
      "AWSTemplateFormatVersion" : "2010-09-09",
      "Description" : "AWS CloudFormation Sample Template",
      "Parameters" : {
        "KeyName": {
          "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance",
          "Type": "AWS::EC2::KeyPair::KeyName",
          "ConstraintDescription" : "must be the name of an existing EC2 KeyPair."
        },
        "InstanceType": {
          "Description": "EC2 instance type",
          "Type": "String",
          "Default": "t2.micro"
        },
        "ImageID": {
          "Description": "EC2 instance type",
          "Type": "String",
          "Default": "ami-xxxxxxxxxxxxxxx"
        },
        "SecurityGroupId" : {
          "Type" : "String",
          "Description" : "The SecurityGroupId of an existing EC2 SecurityGroup in your Virtual Private Cloud (VPC)",
          "Default": "sg-xxxxxxxx"
        },
        "SubnetID": {
          "Description": "Subnets where logging EC2 instances can be deployed, must be in same VPC as selected above",
          "Type": "String",
          "ConstraintDescription": "must be valid subnet.",
          "Default": "subnet-xxxxxxxxx"
        }
      },
      "Resources" : {
        "EC2Instance" : {
          "Type" : "AWS::EC2::Instance",
         "Properties" : {
            "InstanceType" : { "Ref" : "InstanceType" },
            "SecurityGroupIds" : [{ "Ref" : "SecurityGroupId"}],
            "KeyName" : { "Ref" : "KeyName" },
            "ImageId" : { "Ref" : "ImageID" },
            "InstanceInitiatedShutdownBehavior" : "stop",
            "SubnetId" : { "Ref": "SubnetID" }
          }
        }
      },
      "Outputs" : {
        "InstanceId" : {
          "Description" : "InstanceId of the newly created EC2 instance",
          "Value" : { "Ref" : "EC2Instance" }
        }
      }
    }
    
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: