Amazon web services 内在函数的错误是什么!AWS中此云信息模板中的Ref?

Amazon web services 内在函数的错误是什么!AWS中此云信息模板中的Ref?,amazon-web-services,yaml,amazon-cloudformation,Amazon Web Services,Yaml,Amazon Cloudformation,最近,我开始探索YAML格式的AWS CloudFormation。我收到错误消息: 遇到不支持的属性类型 YAML代码的说明如下:- AWSTemplateFormatVersion: 2010-09-09 Resources: DevEC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-04aa88aebb9fefd83 InstanceType: t2.micro Key

最近,我开始探索YAML格式的AWS CloudFormation。我收到错误消息:


遇到不支持的属性类型

YAML代码的说明如下:-

AWSTemplateFormatVersion: 2010-09-09
Resources: 
  DevEC2Instance:
   Type: AWS::EC2::Instance
   Properties:
     ImageId: ami-04aa88aebb9fefd83
     InstanceType: t2.micro
     KeyName: Newkey
     SecurityGroups:
      - default 
      - !Ref SSHSecurityGroup
  SSHSecurityGroup:
     Type: AWS::EC2::SecurityGroup
     Properties:
      GroupDescription: SMy Security Group
      SecurityGroupIngress:
       - IpProtocol: tcp
         FromPort: '22'
         ToPort: '22'
         CidrIp: 0.0.0.0/0
AWST模板格式版本:2010-09-09
资源:
例如:
类型:“AWS::EC2::实例”
特性:
图像ID:ami-04aa88aebb9fefd83
类型:t2.micro
关键字名称:Newkey
安全组:
-违约
- !参考SSHSecurityGroup
SSHSecurityGroup:
类型:AWS::EC2::SecurityGroup
特性:
GroupDescription:Group\u For\u CloudFormation
SecurityGroupIngress:
-Ipprotocol:tcp
FromPort:'22'
托波特:“22”
CidrIp:0.0.0.0/0

您能检查一下这个代码片段是否适合您吗

Resources:

  DevEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-04aa88aebb9fefd83
      InstanceType: t2.micro
      KeyName: Newkey
      SecurityGroups:
        - default
        - !Ref SSHSecurityGroup
  SSHSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Group_For_CloudFormation
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0

因此,正确的代码如下所示:-

AWSTemplateFormatVersion: 2010-09-09
Resources: 
  DevEC2Instance:
   Type: AWS::EC2::Instance
   Properties:
     ImageId: ami-04aa88aebb9fefd83
     InstanceType: t2.micro
     KeyName: Newkey
     SecurityGroups:
      - default 
      - !Ref SSHSecurityGroup
  SSHSecurityGroup:
     Type: AWS::EC2::SecurityGroup
     Properties:
      GroupDescription: SMy Security Group
      SecurityGroupIngress:
       - IpProtocol: tcp
         FromPort: '22'
         ToPort: '22'
         CidrIp: 0.0.0.0/0

该错误是由于资源
SSHSecurityGroup
上缺少缩进造成的,在YAML中,您需要小心缩进。这使得Cloudformation不将元素作为资源,因为它处于相同的缩进级别

这应该起作用:

AWST模板格式版本:2010-09-09
资源:
例如:
类型:“AWS::EC2::实例”
特性:
图像ID:ami-04aa88aebb9fefd83
实例类型:t2.micro
关键字名称:Newkey
安全组:
-违约
- !参考SSHSecurityGroup
SSHSecurityGroup:
类型:AWS::EC2::SecurityGroup
特性:
GroupDescription:Group\u For\u CloudFormation
SecurityGroupIngress:
-IpProtocol:tcp
FromPort:'22'
托波特:“22”
CidrIp:0.0.0.0/0

“遇到了不受支持的属性组描述”-不清楚哪一部分?您有输入错误:
GroupDescription
!=
GroupDecsription
。类型应为ImageType,并且应为IpProtocol。关于IpProtocol,您是对的。对于类型,它应该是InstanceType,ImageType不会出现在Ec2实例的官方文档中。两者都已得到纠正。