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

自定义AWS Lambda Runtime部署ECR后启动失败,请求排查

排查自定义AWS Lambda Runtime镜像在Lambda环境中exit status 1错误

1. 检查文件与目录权限

Lambda运行时默认使用sbx_user1051非root用户执行代码,本地测试用root权限可能掩盖权限问题:

  • 在Dockerfile中添加权限配置,确保关键文件/目录对Lambda用户可读可执行:
    RUN chmod +x /home/entry_script.sh
    RUN chmod -R 755 /home/
    RUN chown -R sbx_user1051:sbx_user1051 /home/
    
  • 确认/usr/bin/python3、awslambdaric相关路径对非root用户有访问权限。

2. 验证awslambdaric安装与路径

Lambda环境中会执行exec /usr/bin/python3 -m awslambdaric $@,需确保依赖正确安装:

  • 在Dockerfile中明确安装awslambdaric:
    RUN pip install awslambdaric
    
  • 检查Python模块路径,确保awslambdaric在Lambda用户的Python环境中可被找到,必要时设置PYTHONPATH:
    ENV PYTHONPATH=/home:/usr/local/lib/python3.x/site-packages
    

3. 查看CloudWatch详细日志

表面的exit status 1只是通用错误,CloudWatch日志会包含具体报错信息:

  • 进入Lambda函数的「监控」->「日志」->「CloudWatch日志组」,查看启动阶段的日志,可能找到脚本执行失败、模块找不到、路径错误等具体原因。

4. 修正入口点的路径问题

app.main需要在Python的搜索路径中,否则会出现模块找不到的错误:

  • 在Dockerfile中设置PYTHONPATH包含/home目录:
    ENV PYTHONPATH=/home
    
  • 或者在entry_script.sh的else分支中切换到/home目录再执行:
    else
      cd /home && exec /usr/bin/python3 -m awslambdaric $@
    fi
    

5. 本地模拟Lambda环境测试

手动设置AWS_LAMBDA_RUNTIME_API环境变量,复现Lambda的执行逻辑:

docker run -e AWS_LAMBDA_RUNTIME_API=127.0.0.1:9001 myImage

如果本地出现同样错误,就能直接在本地调试排查脚本或路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:15:34