AWS lambda (python):安装 psycopg2 的 Dockerfile?

Att*_*oth 2 python psycopg2 amazon-web-services docker aws-lambda

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

我的要求.txt:

pandas==1.3.0
requests==2.25.1
psycopg2==2.9.1
pgcopy==1.5.0
Run Code Online (Sandbox Code Playgroud)

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"]

Run Code Online (Sandbox Code Playgroud)

构建、运行图像并在本地测试 lambda 函数后,我收到以下错误消息:

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

所以我认为容器的 postgres(-devel) 版本错误。但我不确定如何安装正确的版本?关于将 psycopg2 脚本部署到 docker 以使用 lambda 有什么技巧吗?

小智 5

这可能有点旧,来不及回答,但我认为我发布了对我有用的内容。

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" ]
Run Code Online (Sandbox Code Playgroud)