AWS Cloudformation 属性 SubnetIds 的值必须为字符串列表类型

Fou*_*lem 2 string yaml amazon-web-services amazon-rds aws-cloudformation

我正在绑定此 cloudformation 堆栈,但当创建到达 DBSubnetGroup 时,它失败并显示消息:属性 SubnetIds 的值必须是字符串列表类型。我感谢您的帮助。除了 DBSubnetGroup 之外,一切似乎都工作正常。

AWSTemplateFormatVersion: 2010-09-09
Description: My First CloudFormation Template
Resources:
  MyVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.1.0.0/16
      EnableDnsHostnames: true
      EnableDnsSupport: true
      InstanceTenancy: default
      Tags:
      - Key: Name
        Value: VPC for Activity Number 1 
  MySubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVPC
      CidrBlock: 10.1.1.0/24
      MapPublicIpOnLaunch: true
      AvailabilityZone: "us-east-1c"
      Tags:
      - Key: Name
        Value: Public Subnet 
  MySubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVPC
      CidrBlock: 10.1.2.0/24
      MapPublicIpOnLaunch: true
      AvailabilityZone: "us-east-1a"
      Tags:
      - Key: Name
        Value: Public Subnet  A
  MySubnetB:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVPC
      CidrBlock: 10.1.3.0/24
      MapPublicIpOnLaunch: true
      AvailabilityZone: "us-east-1b"
      Tags:
      - Key: Name
        Value: Public Subnet B      
Run Code Online (Sandbox Code Playgroud)

这就是创建失败开始的地方:

  DBSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    DependsOn:
      - MyVPC
      - MySubnet
      - MySubnetA
      - MySubnetB
    Properties:
      DBSubnetGroupDescription: Subnets to lauch the database
      SubnetIds: 
        -!Ref MySubnet
        -!Ref MySubnetA  
        -!Ref MySubnetB    
        
      

Run Code Online (Sandbox Code Playgroud)

Erv*_*gyi 5

为了正确解析,-内部函数和内部函数之间应该有一个空格。!Ref遗憾的是,CloudFormation 仅在创建堆栈时才检测到这一点。

 DBSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    DependsOn:
      - MyVPC
      - MySubnet
      - MySubnetA
      - MySubnetB
    Properties:
      DBSubnetGroupDescription: Subnets to lauch the database
      SubnetIds: 
        - !Ref MySubnet
        - !Ref MySubnetA  
        - !Ref MySubnetB
Run Code Online (Sandbox Code Playgroud)