在AWS Lambda中使用Polars库遭遇二进制缺失错误求助
解决AWS Lambda ARM64架构下Polars依赖部署问题
构建适配Lambda环境的ARM64依赖包
本地M2的ARM64环境和Lambda的Amazon Linux 2 ARM64环境存在系统库差异,直接本地安装的Polars包无法在Lambda正常运行。需要用Docker模拟Lambda环境构建:- 拉取Lambda Python 3.10 ARM64镜像:
docker pull public.ecr.aws/lambda/python:3.10-arm64 - 启动容器并挂载本地目录:
docker run -v $(pwd):/app -it public.ecr.aws/lambda/python:3.10-arm64 bash - 在容器内将Polars安装到指定目录:
pip install polars -t /app/python/lib/python3.10/site-packages/ - 退出容器,将
python目录打包为zip文件,作为Lambda Layer上传。
- 拉取Lambda Python 3.10 ARM64镜像:
确认Layer目录结构正确性
Lambda Layer的zip包必须遵循python/lib/python3.10/site-packages/[依赖文件]的结构,否则Lambda无法识别模块,会出现no module named polars错误。打包前检查目录层级是否符合要求。polars-lts-cpu的适配构建
如果要使用polars-lts-cpu,同样需要在Lambda容器环境内安装,替换安装命令为:pip install polars-lts-cpu -t /app/python/lib/python3.10/site-packages/再按相同步骤打包上传Layer。
测试验证
上传Layer并关联到Lambda函数后,用简单代码测试:import polars as pl def lambda_handler(event, context): test_df = pl.DataFrame({"col1": [1, 2, 3], "col2": ["a", "b", "c"]}) return {"data": test_df.to_dict()}执行测试,确认无依赖错误。
内容的提问来源于stack exchange,提问作者positiveleopard54
相关产品推荐
相关产品推荐

