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

CloudFormation模板为Lambda配置现有IAM角色校验失败问题

报错根因

AWS::Lambda::Function的Role属性强制要求输入符合IAM角色规范的完整ARN,系统会对输入值做正则格式校验,只要格式不符合规则,不管角色是否真实存在都会抛出pattern校验失败错误。

需排查/调整的配置点
  • 补全角色ARN的路径字段
    多数情况下报错是因为ARN遗漏了角色路径:IAM角色创建时可指定路径(控制台默认创建的服务角色路径为/service-role/,未指定路径的自定义角色默认路径为/),完整ARN规则为 arn:aws:iam::${账号ID}:role${路径}${角色名}。例如角色路径为/app-team/时,正确ARN为arn:aws:iam::123456789012:role/app-team/MyCustomRole,漏写路径会直接触发格式校验失败。
  • 适配跨账户场景用动态ARN拼接写法
    跨账户部署的场景不需要硬编码账号ID,可配合CloudFormation内置伪参数动态生成对应账户的ARN,同时支持参数传入路径和角色名,参考正确模板写法:
    "Parameters" : {
      "ExistingRoleName" : {
        "Type" : "String",
        "Default" : "MyCustomRole"
      },
      "ExistingRolePath" : {
        "Type" : "String",
        "Default" : "/",
        "Description" : "IAM角色的路径,末尾无需加斜杠"
      }
    },
    "Resources" : {
      "CustomLambdaFunction" : {
        "Type" : "AWS::Lambda::Function",
        "Properties" : {
          "MemorySize" : 128,
          "Role" : {
            "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role${ExistingRolePath}/${ExistingRoleName}"
          }
          // 剩余Lambda配置项
        }
      }
    }
    
  • 检查模板语法与分区配置
    你贴出的第一版模板中Parameters块结束后缺少逗号,会导致模板解析异常,间接触发属性校验错误;如果部署到AWS中国区,需要将ARN中的aws替换为aws-cn,否则也会匹配不上格式规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:54:02