如何通过serverless.yml配置AWS API Gateway的Lambda代理集成
配置Serverless.yml实现AWS API Gateway Lambda代理集成
要开启API Gateway的Lambda代理集成(对应控制台的“代理集成”开关),你需要在http事件配置中指定integration: lambda-proxy,而非你之前尝试的lambda。修正后的serverless.yml配置如下:
functions: lambda_func: image: my_image timeout: 300 environment: STAGE: ${self:provider.stage} events: - http: path: lambda_func method: post async: true integration: lambda-proxy
关键说明:
integration: lambda对应的是传统Lambda集成(非代理模式),这种模式下API Gateway会对请求/响应做额外转换,和控制台的“代理集成”不是同一个配置,所以你之前的尝试无效。- 启用
lambda-proxy后,API Gateway会将完整的请求上下文(包括headers、查询参数、请求体等)直接传递给Lambda,同时要求Lambda返回符合规范的响应格式,示例如下:{ "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "{\"message\": \"Success\"}" } - 你配置的
async: true不会影响代理集成的生效,此时API Gateway会立即返回202 Accepted,Lambda在后台异步执行,客户端无法获取Lambda的实际响应结果。
内容的提问来源于stack exchange,提问作者Larson Kao
相关产品推荐
相关产品推荐

