web-dev-qa-db-ja.com

少なくとも1つのリソースメンバーを定義する必要があります...クラウド形成のエラーec2

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

メッセージ:テンプレートにエラーがあります。:テンプレート形式のエラー:少なくとも1つのリソースメンバーを定義する必要があります。

{
"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" }
 },
    }
}

CloudFormationテンプレートを使用してAWS EC2インスタンスを起動する簡単なテンプレートを誰かが持っている場合は、投稿してください

3
pallavi

あなたの例はAWS::EC2::Instanceリソースを定義していないようです。これはCloudFormationにEC2インスタンスをプロビジョニングするように指示するものです。

これは、1つのt2.microインスタンスを作成する非常にシンプルなCloudFormationテンプレートです。カスタマイズするために追加できるプロパティの詳細については、 AWS :: EC2 :: Instanceリソース定義 を確認してください。

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

特定のオペレーティングシステム、構成、およびリージョンに対して有効なAMIを見つけるのは、少し難しい場合があります。 このウォークスルー は、AWS Lambdaを使用してAMIの検索を自動化する戦略について説明します。

2
Tom

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" }
    }
  }
}
1
Tamir Rosenberg

テンプレートにはいくつかの問題があります。 @トムは従うべきいくつかの良いアドバイスを持っています。

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"
        }
      }  
    }
}
0
kenlukas