AWS lambda (python): Dockerfile to install psycopg2?



我正在尝试使用本教程上传一个docker容器到AWS ECR for Lambda。我的问题是我的python脚本使用psycopg2,我不知道如何在Docker映像中安装psycopg2。我知道我需要postgres-devellibq库和gcc的编译,但它仍然不工作。

我让:

pandas==1.3.0
requests==2.25.1
psycopg2==2.9.1
pgcopy==1.5.0

Dockerfile:

FROM public.ecr.aws/lambda/python:3.8
WORKDIR /app
COPY my_script.py .
COPY some_file.csv .
COPY requirements.txt .
RUN yum install -y postgresql-devel gcc*
RUN pip install -r requirements.txt
CMD ["/app/my_script.handler"]
在构建、运行映像并在本地测试lambda函数之后,我得到以下错误消息:

psycopg2.OperationalError: SCRAM authentication requires libpq version 10 or above

所以我认为容器有错误的postgres版本(-devel)。但我不知道如何安装合适的版本?关于将psycopg2脚本部署到docker以使用lambda,有什么建议吗?

这可能有点老了,太迟了,但我想我把我的工作。

FROM public.ecr.aws/lambda/python:3.8
COPY . ${LAMBDA_TASK_ROOT}
RUN yum install -y gcc python27 python27-devel postgresql-devel
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
CMD [ "app.handler" ]

最新更新