Я хотел написать полный шаблон CloudFormation для одного экземпляра Linux EC2 в общедоступной подсети. Я использовал шаблон AWS CloudFormation для создания экземпляра EC2 с группой безопасности в качестве отправной точки. Этот шаблон запускает экземпляр в VPC по умолчанию.
Моя цель состояла в том, чтобы иметь автономный шаблон, который создает все необходимое в новом стеке, но не в VPC по умолчанию. Я хотел новый VPC, группу безопасности, таблицу маршрутов, интернет-шлюз, подсеть и запустить новый экземпляр Linux EC2.
Итак, я использовал вышеуказанный шаблон, добавил необходимые ресурсы и связал их, используя Ref
s. Все было хорошо: VPC, Subnet, Security Group, Internet GW, RouteTables и т. Д. Но My EC2 выдает ошибку и стек откатывается.
Причина статуса:
Value () for parameter groupId is invalid. The value cannot be empty (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
Ресурс EC2 в шаблоне CloudFormation выглядел следующим образом:
"EC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : { "Ref" : "InstanceType" },
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] }
}
}
В сообщении об ошибке не было ясно, что делать.