参数 groupName 不能与参数 subnet 一起使用。创建负载均衡的 EC2 实例

The parameter groupName cannot be used with the parameter subnet. Creating load balanced EC2 instances

我对 CloudFormation 模板还很陌生。我已经创建了一个包含 2 public 和 4 个私有子网的 VPC。现在,我想在 2 个私有子网中创建一个 EC2 实例,然后使用在 public 子网上创建的 ELB 对其进行负载平衡。以下是相同的 CFT 模板。

Parameters:
 SecurityGroupDescription:
   Description: Security Group Description
   Type: String
 KeyName:
   Description: Key Pair for EC2
   Type: 'AWS::EC2::KeyPair::KeyName'
 VPC:
   Description: Select VPC.
   Type: AWS::EC2::VPC::Id
 Subnet1:
   Description: Private Subnet to Deploy Docker MFA.
   Type: AWS::EC2::Subnet::Id
 Subnet2:
   Description: Private Subnet to Deploy Docker MFA.
   Type: AWS::EC2::Subnet::Id
Mappings:
 RegionMap:
   us-west-2:
     AMI: ami-0c54e4ec017b92f04

Resources:
 EC2InstanceMule1:
   Type: AWS::EC2::Instance
   Properties:
     InstanceType: t2.micro
     ImageId: 
       Fn::FindInMap:
       - RegionMap
       - Ref: AWS::Region
       - AMI
     SubnetId:
         Ref: Subnet1
     SecurityGroups:
       - !GetAtt EC2SecurityGroup.GroupId
     KeyName: !Ref KeyName

 EC2InstanceMule2:
   Type: AWS::EC2::Instance
   Properties:
     InstanceType: t2.micro
     ImageId: 
       Fn::FindInMap:
       - RegionMap
       - Ref: AWS::Region
       - AMI
     SubnetId:
         Ref: Subnet2
     SecurityGroups:
       - !GetAtt EC2SecurityGroup.GroupId
     KeyName: !Ref KeyName
         
 # security group
 ELBSecurityGroup:
   Type: AWS::EC2::SecurityGroup
   Properties:
     GroupDescription: ELB Security Group
     VpcId: !Ref VPC
     SecurityGroupIngress:
     - IpProtocol: tcp
       FromPort: 80
       ToPort: 80
       CidrIp: 0.0.0.0/0

 EC2SecurityGroup:
   Type: AWS::EC2::SecurityGroup
   Properties:
     GroupDescription: !Ref SecurityGroupDescription
     VpcId: !Ref VPC
     SecurityGroupIngress:
     - IpProtocol: tcp
       FromPort: 80
       ToPort: 80
       SourceSecurityGroupId: 
         Fn::GetAtt:
         - ELBSecurityGroup
         - GroupId
     - IpProtocol: tcp
       FromPort: 22
       ToPort: 22
       CidrIp: 0.0.0.0/0

 # Load Balancer for EC2
 LoadBalancerforEC2:
   Type: AWS::ElasticLoadBalancing::LoadBalancer
   Properties:
     Instances:
     - !Ref EC2InstanceMule1
     - !Ref EC2InstanceMule2
     Listeners:
     - LoadBalancerPort: '80'
       InstancePort: '80'
       Protocol: HTTP
     HealthCheck:
       Target: HTTP:80/
       HealthyThreshold: '3'
       UnhealthyThreshold: '5'
       Interval: '30'
       Timeout: '5'
     SecurityGroups:
       - !GetAtt ELBSecurityGroup.GroupId

我收到以下错误: The parameter groupName cannot be used with the parameter subnet (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination

我已经完成了同样错误的上一个问题,并使用了正在创建的安全组ID。错误仍然存​​在。此外,如果需要任何其他修改,我们将不胜感激。

您应该使用 SecurityGroupIds,而不是 SecurityGroups