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

如何通过Serverless框架将已有AWS Lambda绑定到AWS REST API Gateway资源

Serverless框架实现多API Gateway共享已有Lambda的配置方案

以下是两种常见场景下的配置方案:

场景1:5个REST API均在当前Serverless服务中定义

  • 首先在functions段声明引入已有的Lambda,关闭框架自动新建Lambda的逻辑:
functions:
  sharedLambda:
    # 替换为你已创建的Lambda的准确名称
    name: your-existing-lambda-name
    arn: arn:aws:lambda:${aws:region}:${aws:accountId}:function:your-existing-lambda-name
    # 标记为已有资源,不生成部署包
    existing: true
  • 给每个REST API的目标资源配置Lambda集成,这里以第一个API的配置为例,剩下4个API的配置逻辑完全一致,仅需替换对应的API ID、资源ID、请求方法即可:
resources:
  Resources:
    # 第一个API的目标方法集成配置
    FirstApiTargetMethod:
      Type: AWS::ApiGateway::Method
      Properties:
        RestApiId: !Ref FirstRestApi # 替换为你定义的第一个API的资源名
        ResourceId: !Ref FirstApiTargetResource # 替换为对应API下要绑定的资源ID
        HttpMethod: POST # 替换为实际请求方法
        AuthorizationType: NONE # 替换为实际鉴权方式
        Integration:
          Type: AWS_PROXY
          IntegrationHttpMethod: POST
          Uri: !Sub arn:aws:apigateway:${aws:region}:lambda:path/2015-03-31/functions/${sharedLambda.Arn}/invocations
  • 配置Lambda调用权限,允许所有5个API访问该Lambda,同样以第一个API的权限为例,剩下4个只需替换SourceArn中的API ID:
resources:
  Resources:
    LambdaPermitApi1:
      Type: AWS::Lambda::Permission
      Properties:
        FunctionName: !Ref sharedLambda
        Action: lambda:InvokeFunction
        Principal: apigateway.amazonaws.com
        SourceArn: !Sub arn:aws:execute-api:${aws:region}:${aws:accountId}:${FirstRestApi}/*/*/*

场景2:5个REST API是已存在的外部资源,不在当前Serverless服务中管理

  • 先在配置中导入外部API的ID:
custom:
  externalApiIds:
    - "api1-id" # 替换为第一个已有API的实际ID
    - "api2-id" # 替换为第二个已有API的实际ID
    # 依次补充剩下3个API的ID
  • 同场景1的第一步,先声明引入已有的共享Lambda
  • 后续集成、权限配置逻辑和场景1完全一致,仅需将配置中的API ID替换为你导入的外部API ID即可。

如果5个API需要绑定的资源路径、请求方法完全一致,可以使用Serverless框架的${forEach}循环语法批量生成配置,减少重复代码。
配置完成后执行serverless deploy即可生效,部署后可到API Gateway控制台验证集成是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:48:01