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

基于Lambda的API Gateway POST端点出现意外502内部服务器错误

排查API Gateway + Lambda服务的502内部服务器错误

环境与基础信息

我开发的Lambda服务部署在API Gateway上,测试凭据如下:

{'api_key': '7Qnsu2Resua0UKopC1jpv922eE9jX7Vd9CmIYEKp',
 'api_url': 'https://76wtvuoioe.execute-api.us-east-1.amazonaws.com/test/predict/',
 'method_verb': 'POST'}

已编写Jupyter Notebook用于简化部署流程。

正常测试场景

以下测试代码可正常运行:

from requests import post

def query_post_endpoint(api_url_, api_key_, example_):
    headers = {
        'Content-type': 'application/json', 
        'x-api-key': api_key_,
    }

    resp = post(api_url_, headers=headers, json=example_)

    # Check the response and handle it accordingly
    if resp.status_code == 200:
        response_data = resp.json()
        print(response_data)
    else:
        print("Request failed with status code:", resp.status_code)
        print(resp.text)

import json
import numpy as np

# Prepare the event to pass to the Lambda function
example=[1,2,3,4,5,6,7,8,9]

query_post_endpoint(api_url, api_key, example)

返回结果:[1, 4, 9, 16, 25, 36, 49, 64, 81]

问题场景

当测试不同请求大小的响应时间时,所有请求均返回502错误:
测试代码:

import json
import requests
from about_time import about_time

# Prepare the event to pass to the Lambda function
example_sizes=[1, 10, 100, 1000, 10000, 100000, 100000]
durations=[]

with about_time() as total_t:
    for example_size in example_sizes:
        with about_time() as single_t:
            # Transform into json format
            example=list(range(example_size))
            
            query_post_endpoint(api_url, api_key, example)
        
        durations.append(single_t.duration_human)

错误返回:

Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}
Request failed with status code: 502
{"message": "Internal server error"}

排查方向

  • Lambda函数超时限制:Lambda默认超时时间为3秒,大请求(如10万条数据的列表)处理可能超过该时间,触发超时后API Gateway返回502。检查Lambda控制台的超时配置,调整为足够处理最大请求量的时长。
  • Lambda资源不足:大请求数据处理需要更多内存/CPU资源,当前Lambda的内存配额可能不足以支撑,导致执行失败。尝试提高Lambda的内存分配(内存提升会同步增加CPU资源)后重新测试。
  • API Gateway payload大小限制:REST API默认请求payload最大为10MB、响应payload最大为6MB;HTTP API默认请求/响应最大为10MB。若请求或生成的响应超出阈值,会触发502错误,检查大请求的payload及响应大小是否超标。
  • Lambda代码异常:大请求可能触发未处理的代码异常(如内存溢出、循环处理超时等)。查看Lambda的CloudWatch日志,定位具体错误信息(如OutOfMemoryError、超时日志),这是排查内部错误最直接的方式。
  • API Gateway集成配置问题:确认API Gateway与Lambda的集成配置是否正确,比如proxy集成是否启用、请求转换规则在大请求下是否失效。检查API Gateway的集成请求设置,排除额外的请求大小限制配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:41:04