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

如何通过CloudFormation为API Gateway配置触发Lambda的权限

配置CloudFormation实现API网关代理到Lambda

我看你正在用CloudFormation搭建代理到Lambda的API网关,目前的代码里Lambda权限的SourceArn还没配置完整,我帮你补全整个必要的配置,并解释关键细节:

完整的CloudFormation YAML配置

RestApiHamed:
  Type: 'AWS::ApiGateway::RestApi'
  Properties:
    Name: hamed-proxy-test

# Lambda权限:允许API网关调用Lambda函数
APIGatewayToLambdaPermission:
  Type: AWS::Lambda::Permission
  DependsOn: RestApiHamed
  Properties:
    Action: lambda:invokeFunction
    FunctionName: test-stg1-lambda-product-get
    Principal: apigateway.amazonaws.com
    # 正确拼接SourceArn:包含API网关ID、通配符匹配所有阶段和路径
    SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${RestApiHamed}/*/*/*"

# 创建代理资源 {proxy+},用于匹配所有路径
ProxyResource:
  Type: AWS::ApiGateway::Resource
  DependsOn: RestApiHamed
  Properties:
    ParentId: !GetAtt RestApiHamed.RootResourceId
    PathPart: "{proxy+}"
    RestApiId: !Ref RestApiHamed

# 配置ANY方法,接受所有HTTP请求方法
ProxyMethod:
  Type: AWS::ApiGateway::Method
  DependsOn: ProxyResource
  Properties:
    AuthorizationType: NONE
    HttpMethod: ANY
    ResourceId: !Ref ProxyResource
    RestApiId: !Ref RestApiHamed
    Integration:
      Type: AWS_PROXY
      IntegrationHttpMethod: POST
      Uri: !Sub "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${test-stg1-lambda-product-get.Arn}/invocations"
      PassthroughBehavior: WHEN_NO_MATCH

# 部署API网关到一个阶段(比如prod)
ApiDeployment:
  Type: AWS::ApiGateway::Deployment
  DependsOn: ProxyMethod
  Properties:
    RestApiId: !Ref RestApiHamed
    StageName: prod

关键要点解释

  • Lambda权限的SourceArn:必须精确匹配API网关的执行ARN,这里用!Sub结合!Ref RestApiHamed获取API网关ID,/*/*/*通配符表示允许所有阶段、所有HTTP方法、所有路径的请求调用Lambda,完全适配代理场景的需求。
  • 代理资源{proxy+}:这个路径部分会匹配所有层级的子路径,是API网关实现全路径代理Lambda的核心配置,确保任何路径的请求都能转发到Lambda处理。
  • ANY方法 + AWS_PROXY集成:ANY方法支持GET/POST/PUT等所有HTTP请求方法,AWS_PROXY集成类型会自动把请求上下文、参数、请求体等完整转发给Lambda,同时自动处理Lambda的响应并返回给客户端,无需额外映射配置。
  • API部署:必须创建Deployment资源才能让配置的API网关生效,指定阶段名(比如prod)来发布你的API服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:48:59