AWS Lambda股票数据采集函数运行超时及线程异常问题求助
问题描述
我在AWS Lambda上运行一款股票数据采集器,严格遵循操作说明部署后,执行函数时触发超时错误,同时日志显示线程异常。错误详情如下:
Response { "errorMessage": "2023-02-02T11:32:24.018Z 18fecfde-318c-47a5-8df5-aa9bdbc6f138 Task timed out after 180.11 seconds" } Function Logs OpenBLAS WARNING - could not determine the L2 cache size on this system, assuming 256k running START RequestId: 18fecfde-318c-47a5-8df5-aa9bdbc6f138 Version: $LATEST ['APPL'] loading data Exception in thread Thread-1:
排查建议
- 延长Lambda超时时间:当前超时设置为180秒,若数据采集逻辑需要更长处理时间,可在Lambda控制台「配置」→「常规配置」中调高超时上限(最大支持900秒),先验证是否为单纯超时问题。
- 补全线程异常日志:现有日志仅提示线程异常但无具体错误信息,需修改代码在线程执行函数中添加
try-except块,捕获并打印完整的异常栈信息(比如使用traceback模块),定位线程内的具体报错原因。 - 验证网络访问权限:若采集器需调用外部股票数据API,确认Lambda执行角色具备出站网络权限:配置VPC的场景下需确保有NAT网关/互联网网关;无VPC配置时默认拥有公网访问权限。同时可在代码中添加简单的HTTP请求测试,验证目标API是否能正常访问。
- 提升Lambda资源配置:OpenBLAS的警告可能与Lambda的CPU/内存配置相关,尝试调高内存分配(内存与CPU性能关联),比如从默认128MB提升至512MB或更高,提升数据处理速度以降低超时概率。
- 检查股票代码正确性:日志中显示的股票代码为
['APPL'],正确的苹果股票代码应为AAPL,代码输入错误可能导致采集失败,进而引发线程异常和超时,先确认股票代码是否准确。 - 确认依赖包兼容性:确保部署到Lambda的依赖包(如pandas、numpy等依赖OpenBLAS的库)是针对Lambda运行环境(如Amazon Linux 2)编译的,避免因依赖不兼容导致运行错误或性能问题。
内容的提问来源于stack exchange,提问作者Aharon
相关产品推荐
相关产品推荐

