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

如何访问ECR上AWS Lambda Python镜像的Shell?

解决方案

直接进入Lambda Python镜像的Shell

Lambda官方Python镜像的默认entrypoint是Lambda运行时的启动脚本,要求必须传入handler名称作为参数,直接追加/bin/bash会被当作handler参数导致报错。要直接进入shell,需要覆盖默认的entrypoint,执行以下命令:

docker run -it --entrypoint /bin/bash public.ecr.aws/lambda/python:3.8
  • -it:启用交互模式并分配伪终端
  • --entrypoint /bin/bash:替换镜像默认的entrypoint为bash shell

适配现有build_lambda.sh脚本(无需Dockerfile)

如果要在流水线脚本中自动完成依赖安装,不用手动进入shell,可以直接在docker run中挂载本地代码目录,执行安装命令:

# 在build_lambda.sh中替换原有的依赖安装步骤
docker run --rm -v "$(pwd):/app" --entrypoint /bin/bash public.ecr.aws/lambda/python:3.8 -c "
  cd /app &&
  pip install -r requirements.txt -t ./package
"
  • --rm:容器执行完命令后自动删除
  • -v "$(pwd):/app":将当前目录挂载到容器内的/app路径
  • -c:让bash执行后续的命令串,完成依赖安装并将包输出到本地./package目录

更优方案:使用Serverless Python依赖插件

如果不想手动维护Docker命令,推荐使用Serverless Framework的serverless-python-requirements插件,它会自动:

  • 识别Lambda运行时环境,匹配对应的系统依赖
  • 自动在隔离环境(默认用Docker)中安装兼容的Python依赖
  • 打包时自动剔除无用文件,减小部署包体积

配置示例:

# serverless.yml中添加插件配置
plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: true # 启用Docker环境安装依赖
    runtime: python3.8 # 指定对应Python版本

这样只需要在serverless.yml中添加几行配置,就能替代原有手动的Docker依赖安装逻辑,大幅简化流水线脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:37:06