AWS Lambda Python3.11镜像YUM安装失败问题排查求助
问题原因
AWS Lambda Python 3.11基础镜像近期完成了底层操作系统升级,从Amazon Linux 2(AL2)切换到了Amazon Linux 2023(AL2023)。AL2023中默认包管理器从yum替换为dnf,新版本镜像移除了yum的软链接,导致执行yum install时找不到命令。
之前能正常构建是因为当时的public.ecr.aws/lambda/python:3.11镜像还是基于AL2的版本,近期AWS更新了该标签,使其指向AL2023版本的镜像。
解决方法
有两种可行方案:
方案1:替换包管理器为dnf
AL2023的dnf用法和yum基本兼容,直接替换Dockerfile中的命令即可:
# Start with the base image FROM public.ecr.aws/lambda/python:3.11 as build # Install system-level dependencies for Chrome and FFmpeg RUN dnf install -y unzip atk cups-libs gtk3 libXcomposite alsa-lib \ libXcursor libXdamage libXext libXi libXrandr libXScrnSaver \ libXtst pango at-spi2-atk libXt xorg-x11-server-Xvfb \ xorg-x11-xauth dbus-glib dbus-glib-devel nss mesa-libgbm git
方案2:指定使用基于Amazon Linux 2的Python3.11镜像
如果想继续使用yum,可以明确指定AL2版本的Python3.11镜像标签(该标签不会切换到AL2023):
# 使用基于Amazon Linux 2的Python3.11镜像 FROM public.ecr.aws/lambda/python:3.11-al2 as build # Install system-level dependencies for Chrome and FFmpeg RUN yum install -y unzip atk cups-libs gtk3 libXcomposite alsa-lib \ libXcursor libXdamage libXext libXi libXrandr libXScrnSaver \ libXtst pango at-spi2-atk libXt xorg-x11-server-Xvfb \ xorg-x11-xauth dbus-glib dbus-glib-devel nss mesa-libgbm git
额外说明
虽然你指定了3.11而非latest,但AWS Lambda的3.11属于滚动更新标签,会指向该Python版本对应的最新底层操作系统镜像。如果想要完全固定镜像版本,建议使用具体的镜像 digest(比如public.ecr.aws/lambda/python:3.11@sha256:xxxxxx),避免意外更新导致构建失败。
内容的提问来源于stack exchange,提问作者Wizard74
相关产品推荐
相关产品推荐

