AWS Lambda Runtime.ImportModuleError求助:无效ELF头问题
解决AWS Lambda Python3.13 Runtime.ImportModuleError(invalid ELF header)问题
问题原因
Lambda的Python 3.13运行环境基于Amazon Linux 2023(AL2023),你使用的amazonlinux:2(AL2)容器与目标环境的系统库、glibc版本存在差异,导致编译生成的_rust.abi3.so二进制文件不兼容,触发ELF头无效错误。
解决步骤
使用匹配的容器环境打包依赖
改用Amazon Linux 2023镜像构建,确保依赖编译环境与Lambda运行时一致:# 拉取Amazon Linux 2023镜像 docker pull amazonlinux:2023 # 启动交互式容器 docker run -it --rm amazonlinux:2023 /bin/bash在容器内配置Python 3.13环境
AL2023默认未预装Python3.13,需手动安装:# 安装编译依赖和Python 3.13 dnf install -y python3.13 python3.13-pip gcc openssl-devel rust cargo重新打包依赖层
在容器内执行以下命令,确保依赖编译和安装完全适配目标环境:mkdir -p /root/alarm_modules/python/lib/python3.13/site-packages cd /root/alarm_modules # 用pip3.13安装依赖,禁用缓存避免旧文件干扰 pip3.13 install requests cryptography -t python/lib/python3.13/site-packages/ --no-cache-dir # 打包成Layer压缩包 zip -r9 alarm.zip python更新Lambda Layer并测试
将新生成的alarm.zip上传替换原Lambda Layer,关联到Python3.13函数后重新运行测试。
内容的提问来源于stack exchange,提问作者Erwin
相关产品推荐
相关产品推荐

