2017-01-09 10 views
1

Любые предложения, почему этот AWS CloudFormation продолжает откатываться?Ошибка проверки параметров: значение параметра для имени параметра <some parameter> не существует. Откат, запрошенный пользователем

{ 
    "Description" : "Single Instance", 

    "Resources" : { 
     "EC2Instance" : { 
      "Type" : "AWS::EC2::Instance", 
      "Properties" : { 
       "ImageId" : "ami-b73b63a0", 
       "InstanceType" : "t2.micro", 
       "KeyName" : "aws-key-here", 
       "Tags" : [ 
        { 
         "Key" : "Name", 
         "Value" : "test" 
        } 
        ], 
       "SubnetId" : { 
        "Fn::Select" : [ "0", { "Ref" : "Subnets" } ] 
       } 
      } 
     } 
    }, 

    "Parameters": { 
     "Subnets": { 
      "Type": "List<AWS::EC2::Subnet::Id>", 
      "Description": "The list of SubnetIds, for at least two Availability Zones in the region in your Virtual Private Cloud (VPC)" 
     } 
    } 
} 

Специфическая ошибка, кажется, о подсетях Ref:

Parameter validation failed: parameter value for parameter name Subnets does not exist. Rollback requested by user. 

Я уже создал 1 действительную подсеть в моей консоли управления AWS и протестирован, что он работает, когда раскручивается в EC2 экземпляре вручную.

Или есть способ отладки этого/получения более подробного вывода?

+0

Когда вы идете выполнить, ваш список подсети подсвечивается хорошо? –

+0

Нет. Только эта ошибка – Snowcrash

ответ

0

SubnetsParameter в вашем шаблоне имеет тип List<AWS::EC2::Subnet::Id>, для которого требуется ссылка на список допустимых идентификаторов подсети. Ошибка, которую вы видите, означает, что вы передали хотя бы один недопустимый идентификатор подсети в параметр Subnet.

Если вы развертываете свой стек из AWS CLI с помощью aws cloudformation create-stack, вам необходимо передать действительное значение параметра, используя опцию --parameters ParameterKey=Subnets,ParameterValue=subnet-12345678.

Если вы используете консоль управления, вам необходимо указать specify stack parameters с помощью предоставленного диалога и выбрать идентификатор подсети из раскрывающегося списка.

+0

Итак, если вы используете консоль управления, не существует способа определить, какие идентификаторы подсети доступны через шаблон CloudFormation? (т. е. без указания идентификатора подсети в раскрывающемся списке) – Snowcrash

+0

Выпадающий список, отображаемый в консоли управления для этого параметра, должен содержать только доступные идентификаторы подсети, поэтому пока вы выбираете один из них, вы должны быть в порядке. Вне этого, другой (менее удобный) способ получить список, в котором идентификаторы подсети доступны из учетной записи пользователя, состоял бы в вызове 'aws ec2 describe-subnets -query Subnets []. SubnetId --outout text' из AWS CLI , или эквивалент в любом другом SDK AWS. – wjordan

+0

Да, это сработало. Благодарю. – Snowcrash