Amazon web services aws cloudformation-在我的vpc中启动ec2实例
如果我删除子网:!从EC2Instance条目中引用SubnetPublic,它工作正常 原因是什么 [完整代码]Amazon web services aws cloudformation-在我的vpc中启动ec2实例,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,如果我删除子网:!从EC2Instance条目中引用SubnetPublic,它工作正常 原因是什么 [完整代码] 明白了。这是因为子网是vpc的一部分,但您的安全组不是 如果您在vpc内创建安全组,它应该可以工作 您可以通过将VpcId参数设置为安全组来完成此操作 此外,还应该使用SecurityGroupId而不是SecurityGroups 希望这有帮助。我添加了VpcId:!将VPC引用到InstanceSecurityGroup:但仍然相同。参数groupName不能与参数subnet
明白了。这是因为子网是vpc的一部分,但您的安全组不是 如果您在vpc内创建安全组,它应该可以工作 您可以通过将VpcId参数设置为安全组来完成此操作 此外,还应该使用SecurityGroupId而不是SecurityGroups
希望这有帮助。我添加了VpcId:!将VPC引用到InstanceSecurityGroup:但仍然相同。参数groupName不能与参数subnet Service一起使用:AmazonEC2;身份代码:400;错误代码:InvalidParameterComposition;请求ID:b736cf6d-35e5-49e7-b583-EE75370353B3更新了答案,您应该使用SecurityGroupID而不是SecurityGroupshappy来帮助;
EC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: !Ref InstanceType
SubnetId: !Ref SubnetAPublic
SecurityGroups:
- !Ref InstanceSecurityGroup
KeyName: !Ref KeyName
ImageId: !FindInMap
- AWSRegionArch2AMI
- !Ref 'AWS::Region'
- !FindInMap
- AWSInstanceType2Arch
- !Ref InstanceType
- Arch
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupDescription: Enable SSH access via port 22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref SSHLocation
EC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: !Ref InstanceType
SubnetId: !Ref SubnetAPublic
SecurityGroupIds:
- !Ref InstanceSecurityGroup
KeyName: !Ref KeyName
ImageId: !FindInMap
- AWSRegionArch2AMI
- !Ref 'AWS::Region'
- !FindInMap
- AWSInstanceType2Arch
- !Ref InstanceType
- Arch