You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建AWS CloudFormation跨栈引用时提示YAML格式错误求助

问题原因

第15行YAML解析失败由两个语法错误导致:

  • 内置函数嵌套格式不合法:使用!开头的短格式CloudFormation内置函数时,参数必须紧跟函数标签,你将!ImportValue的参数拆到下一行后缩进错位,短标签与全写Fn::Sub的嵌套不符合YAML映射结构要求。
  • !Cidr函数参数结构断裂:!Cidr需要三个顺序固定的参数:源CIDR段、待切分子网数量、子网前缀长度,你把后两个参数3, 8写到了!ImportValue的结构外部,破坏了YAML的层级嵌套关系,解析器无法识别参数归属。

你模板中VpcId字段的!ImportValue嵌套Fn::Sub也存在相同格式问题,只是校验时先命中了CidrBlock行的错误。

修正方案

调整嵌套函数的缩进和结构,两种合法写法均可:

短标签写法(更简洁)

统一使用!开头的短函数标签,按层级缩进对齐所有参数,保证!Cidr的三个参数都归属到自身的参数列表内:

CidrBlock: !Select 
  - 0
  - !Cidr
    - !ImportValue !Sub "${NetworkStackParameter}-VPCCIDR"
    - 3
    - 8
VpcId: !ImportValue !Sub "${NetworkStackParameter}-VPCID"

全写函数写法(结构更清晰,适合初学者)

全部使用Fn::开头的全写函数格式,层级关系更直观,不容易出现缩进错误:

CidrBlock:
  Fn::Select:
    - 0
    - Fn::Cidr:
      - Fn::ImportValue:
          Fn::Sub: "${NetworkStackParameter}-VPCCIDR"
      - 3
      - 8
VpcId:
  Fn::ImportValue:
    Fn::Sub: "${NetworkStackParameter}-VPCID"
修正后可正常校验的完整模板
AWSTemplateFormatVersion: "2010-09-09"
Description: 在主VPC创建私有子网并共享给指定账号

Parameters:
  NetworkStackParameter:
    Type: String

Resources:
  # 创建us-east-1a可用区私有子网
  PrivateSubnetABC:
    Type: AWS::EC2::Subnet
    Properties:
      CidrBlock: !Select 
        - 0
        - !Cidr
          - !ImportValue !Sub "${NetworkStackParameter}-VPCCIDR"
          - 3
          - 8
      VpcId: !ImportValue !Sub "${NetworkStackParameter}-VPCID"
      AvailabilityZone: "us-east-1a"
      Tags:
        - Key: "Name"
          Value: "PrivateSubnetABC"

  # 创建RAM资源共享
  PrivateSubnetABCShare:
    Type: AWS::RAM::ResourceShare
    Properties:
      Name: "Service ABC"
      Principals:
        - "123456789012" # 替换为真实的12位目标账号ID
      ResourceArns:
        - !Sub 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:subnet/${PrivateSubnetABC}'
其他注意事项
  • 原模板中标签Key为小写name,AWS控制台默认识别大写开头的Name标签作为资源显示名,建议修改否则控制台资源列表不会展示你设置的子网名称。
  • RAM资源共享的Principal字段需要填写12位的AWS账号ID,原模板中填写的1234567890仅10位,需要替换为真实目标账号ID。
  • 跨栈引用需要保证主VPC栈的导出值名称与当前模板中!Sub拼接的名称完全一致,否则部署时会报导出值不存在的错误。

内容的提问来源于stack exchange,提问作者foa771

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 16:09:22