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

AWS CloudFormation部署报错:Role属性模式验证失败求助

AWS SAM部署Lambda函数时Role属性Pattern验证错误的排查与解决

可能原因

  • YAML模板缩进错误:你的SAM模板中Role属性的层级不正确,当前它与Events同级(属于MyFunction的顶级属性),而非Properties的子属性。CloudFormation会将这个位置的Role值视为不符合AWS::Serverless::Function资源的属性规范,触发格式验证失败。
  • 角色值格式不符合约束:虽然你确认角色存在,但如果MyLambdaExecutionRole的名称包含IAM角色命名规则外的特殊字符、长度超出1-64字符限制,通过!Ref获取的角色名也会触发格式验证错误(这种情况较少见)。

解决方法

  1. 修正模板缩进:将Role: !Ref MyLambdaExecutionRole移动到Properties层级下,与CodeUri、Handler等属性同级。修正后的模板片段如下:
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: s3://my-bucket/my-function.zip
      Handler: app.lambda_handler
      Runtime: python3.8
      Role: !Ref MyLambdaExecutionRole # 修正缩进,放到Properties下
      Events:
        MyApi:
          Type: Api
          Properties:
            Path: /my-api
            Method: GET

  MyLambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      # 补充完整角色属性,比如AssumeRolePolicyDocument、ManagedPolicyArns等
  1. 验证角色格式(可选):如果缩进修正后仍报错,检查MyLambdaExecutionRole的名称是否符合IAM角色命名规则(仅允许字母、数字、连字符、下划线),或直接使用角色ARN赋值(格式如arn:aws:iam::123456789012:role/MyLambdaExecutionRole)替代!Ref。

内容的提问来源于stack exchange,提问作者Ajay Lal C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:22