首页 > 解决方案 > 使用子网时 AWS Cloudformation 出现错误

问题描述

你能检查一下我创建的代码吗?YAML出于Cloudformation某种奇怪的原因,我收到了以下错误。抱歉代码对齐。

Error: CREATE_FAILED    AWS::EC2::Instance  Ec2InstanceOne  The parameter groupName cannot be used with the parameter subnet (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: a4018f68-7454-4f1f-ba81-6ec3b3c78d98)

Resources:
Ec2InstanceOne:
Type: AWS::EC2::Instance
  Properties:
  AvailabilityZone: eu-west-1a
  ImageId: ami-466768ac
  InstanceInitiatedShutdownBehavior: terminate #stop or Terminate
  InstanceType: t2.micro
  KeyName: Resources # If we are mentioning in Parameters we have to mention 
  AWS::EC2::KeyPair::KeyName


  SecurityGroups:
    - !Ref Ec2SecurityGroup
  SubnetId: !Ref MySubnet

Ec2SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
  GroupDescription: This is to allow HTTP site access
  VpcId: !Ref MyVpc
  SecurityGroupIngress:
    - IpProtocol: tcp
      FromPort: 80
      ToPort: 80
      CidrIp: 0.0.0.0/0
    - IpProtocol: tcp
      FromPort: 22
      ToPort: 22
      CidrIp: 0.0.0.0/0

MyVpc:
Type: "AWS::EC2::VPC"
Properties:
CidrBlock: 192.168.0.0/16

MyRoute:
Type: AWS::EC2::Route
Properties:
RouteTableId: 10.120.0.0/16
DestinationCidrBlock: 0.0.0.0/0
InstanceId: !Ref Ec2InstanceOne

MySubnet:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: eu-west-1a
CidrBlock: 192.168.1.0/24
VpcId: !Ref MyVpc

标签: amazon-web-servicesyamlamazon-cloudformation

解决方案


我在处理系统管理器文档时遇到了同样的问题。我们需要使用安全组 ID 而不是安全组名称。

替换这个

 SecurityGroups:
    - !Ref Ec2SecurityGroup

有了这个,然后尝试。它将解决问题。

SecurityGroupIds:
  - !Ref Ec2SecurityGroupID

安全组名称仅适用于默认 VPC 或 EC2-classic。对于非默认 VPC 子网,我们必须使用安全组 ID。


推荐阅读