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

问询:serverless-apigateway-service-proxy插件能否用于AWS ApiGatewayV2?

问题解答

核心结论

serverless-apigateway-service-proxy 插件支持AWS ApiGatewayV2(HTTP API),但需要针对性调整配置,才能让S3上传路由与你的PHP业务逻辑联动,而非完全独立。

具体配置方案

1. 启用插件对HTTP API的支持

在serverless.yml的插件配置中,明确指定apiType: HTTP,确保插件针对ApiGatewayV2生成对应资源:

plugins:
  - serverless-apigateway-service-proxy

custom:
  apiGatewayServiceProxies:
    - s3:
        path: /my/path
        method: post
        action: PutObject
        bucket: { Ref: YourUploadS3Bucket }
        apiType: HTTP # 关键:指定适配ApiGatewayV2
        requestParameters:
          - name: key
            mappedFrom: "integration.request.path.objectKey"
            required: true
        requestTemplates:
          application/json: |
            {
              "key": "$input.params('objectKey')",
              "body": "$input.body"
            }

2. 让上传流程与PHP逻辑联动

直接通过API Gateway上传S3会绕过Lambda,你可以通过S3事件通知触发你的PHP Lambda(lambdaApi)处理后续业务:

  • 在S3资源配置中添加事件通知,当文件上传完成时触发Lambda:
resources:
  Resources:
    YourUploadS3Bucket:
      Type: AWS::S3::Bucket
      Properties:
        NotificationConfiguration:
          LambdaConfigurations:
            - Event: s3:ObjectCreated:*
              Function: { Ref: LambdaApiLambdaFunction }
              Filter:
                S3Key:
                  Rules:
                    - Name: prefix
                      Value: user-uploads/ # 可选:仅触发指定前缀的文件上传事件
  • 修改你的public/index.php代码,使其能够解析S3事件的JSON payload,完成后续业务逻辑(比如记录上传日志、更新用户数据等)。

3. 无插件替代方案(手动配置)

如果不想依赖插件,也可以直接在resources中手动配置ApiGatewayV2与S3的集成:

  • 创建AWS::ApiGatewayV2::Integration(类型为AWS_PROXY,集成目标指向S3)
  • 创建AWS::ApiGatewayV2::Route将/my/path路径关联到该集成
  • 同样通过S3事件通知触发PHP Lambda处理后续逻辑

注意事项

  • API Gateway HTTP API的payload限制为10MB,完全覆盖你6MB文件的上传需求
  • 需配置S3桶的CORS规则,允许API Gateway的域名发起跨域请求
  • 确保Lambda的并发配额和执行时间设置满足业务处理需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:29