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

在Docker中部署AWS Lambda Python代码时遭遇权限[Errno 13]错误求助

解决AWS Lambda Docker镜像部署的权限错误

问题原因

Lambda运行时使用非root用户(UID 1000)执行代码,当你从本地复制lambda_handler.py到容器时,文件权限继承了本地设置(可能是仅root可读),导致运行用户无法读取该文件,触发PermissionError。

解决方案

有两种方式修复权限问题:

方法1:复制文件时直接指定权限

在COPY命令中添加--chown参数,将文件所有权转移给Lambda运行用户:

FROM public.ecr.aws/lambda/python:3.9

# 复制文件并指定归属为Lambda运行用户(UID 1000)
COPY --chown=1000:1000 lambda_handler.py ${LAMBDA_TASK_ROOT}

RUN yum install -y gcc-c++ pkgconfig poppler-cpp-devel
RUN pip install selenium boto3 --target "${LAMBDA_TASK_ROOT}"

CMD ["lambda_handler.handler"]

方法2:复制后修改文件权限

如果无法在复制时指定权限,可通过RUN命令修改文件的可读权限:

FROM public.ecr.aws/lambda/python:3.9

COPY lambda_handler.py ${LAMBDA_TASK_ROOT}
# 赋予所有用户读取文件的权限
RUN chmod 644 ${LAMBDA_TASK_ROOT}/lambda_handler.py

RUN yum install -y gcc-c++ pkgconfig poppler-cpp-devel
RUN pip install selenium boto3 --target "${LAMBDA_TASK_ROOT}"

CMD ["lambda_handler.handler"]

验证

重新构建镜像并部署到Lambda后,调用函数即可正常执行,不再出现权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:35:31