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

Chalice 1.26.2部署AWS后504超时本地运行正常问题求助

问题排查及解决步骤

核心问题1:模块导入错误

日志显示No module named 'crud'是最优先解决的问题,根因如下:
Chalice打包部署时只会将包含__init__.py的目录识别为Python包并打入部署包,你本地运行时当前项目目录会被自动加入Python模块搜索路径,所以可以正常导入chalicelib下的模块,但部署到Lambda后缺少__init__.py的chalicelib目录不会被打包,导致导入失败。

解决方法

在chalicelib目录下新建空的__init__.py文件,同时确认chalicelib下的crud.py、models.py、schemas.py等文件都存在,重新执行chalice deploy即可解决导入错误。


核心问题2:超时错误

导入问题解决后如果还有超时报错,按以下优先级排查:

  1. 全局初始化逻辑阻塞
    你在app.py全局作用域执行了以下逻辑,这些逻辑会在Lambda冷启动阶段优先执行,任一环节阻塞都会导致函数超时:
    • models.Base.metadata.create_all(bind=engine):每次冷启动都执行表结构创建完全没有必要,且如果数据库连接不通会直接卡住。建议将该逻辑移到本地执行的独立脚本中,不要放在Lambda运行时代码里。
    • 数据库连接初始化、Firebase Admin初始化:如果这两个服务的网络连通性有问题,会直接导致初始化超时。
  2. 网络配置问题
    • 如果你的PostgreSQL数据库部署在AWS VPC内部,需要在.chalice/config.json中为Lambda函数配置对应VPC的子网、安全组,且安全组要允许Lambda访问数据库的5432端口。
    • 如果Lambda配置了VPC但没有配置NAT网关,会无法访问公网的Firebase服务,导致Firebase初始化超时,需要给VPC配置公网出口,或者将Firebase相关接口加入VPC端点(如果支持)。
  3. 超时配置不足
    Chalice默认Lambda函数超时时间为30秒,你当前日志显示超时时间为60秒,若冷启动阶段初始化逻辑耗时较长,可以在.chalice/config.json中调整lambda_timeout参数到90秒,先保证初始化流程可以正常完成,后续再优化冷启动耗时。

其他说明

你使用的psycopg2-binary适配Lambda运行环境,不需要本地编译,不是问题根源,无需更换。
全局复用数据库连接的写法在Lambda运行环境下可能会出现连接失效的问题,建议后续调整为每次调用校验连接有效性,避免复用时出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:05