由于psycopg2,使用无服务器框架进行部署无法正常工作。psycopg2的Docker安装不起作用

Jwan622

这是我相关的serverless.yml文件:

plugins:
  - serverless-python-requirements

# registers the plugin with Serverless
# hooking into the Framework on a deploy command. Before your package is zipped, it uses Docker to install the
# packages listed in your requirements.txt file and save them to a .requirements/ directory. It then symlinks the
# contents of .requirements/ into your top-level directory so that Python imports work as expected.
custom:
  pythonRequirements:
    dockerizePip: non-linux
    zip: true
    slim: true

在我的requirements.txt文件中,我有这个:psycopg2==2.8.3

当我跑步时sls deploy,我看到以下内容:

Error: pg_config executable not found.

    pg_config is required to build psycopg2 from source.  Please add the directory
    containing pg_config to the $PATH or specify the full executable path with the
    option:   python setup.py build_ext --pg-config /path/to/pg_config build

我的pg_config脚本是/env/local/bin这样的:pg_config@ -> ../Cellar/postgresql/11.5_1/bin/pg_config

我还可以做些什么?简而言之,需要在docker中构建psycopg2,以便创建的二进制文件适用于AWS Lambda。我无法使用serverless-python-requirements插件正常工作我还可以做些什么?

瓦拉德

我遇到了同样的问题,看到的许多帖子都没有帮助我。例如,本文[1]在正确设置安全组和子网方面有很大帮助,但是查看代码[2]我看不到它如何安装,因为它将得到同样的错误。

我要做的是在最上面的无服务器目录中创建了一个Dockerfile,然后注入了所需的文件。Dockerfile看起来像这样:

FROM lambci/lambda:build-python3.7
RUN yum install -y postgresql-devel python-psycopg2 postgresql-libs

然后在serverless.yaml文件中添加以下内容:

custom:
  pythonRequirements:
    dockerizePip: non-linux
    dockerFile: ./Dockerfile

从文档[3]中,它将获取Dockerfile(现在有了pg_config)并将其添加requirements.txt到其中。如果返回的速度超快,则可能需要清除缓存的版本。

提示:如果编译该函数,然后在调用该函数时出现30秒超时,则可能需要更改安全组和/或子网,以确保它可以访问Redshift集群。

希望有帮助!

  1. https://serverless.com/blog/etl-job-processing-with-serverless-lambda-and-redshift/
  2. https://github.com/rupakg/serverless-etl
  3. https://github.com/UnitedIncome/serverless-python-requirements

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

psycopg2不适用于AWS Lambda上的无服务器框架部署

来自分类Dev

pip安装psycopg2不起作用

来自分类Dev

psycopg2 executemany无法正常工作

来自分类Dev

Psycopg2中的元命令-\ d不起作用

来自分类Dev

Psycopg2:cursor.execute无法正常工作

来自分类Dev

无法使psycopg2工作,但安装正确。苹果系统

来自分类Dev

无法在Windows上安装Psycopg2

来自分类Dev

使用pip进行Psycopg2安装可正常运行,但无法在OS X 10.9上导入模块

来自分类Dev

如何在django和psycopg2中使用服务器端游标?

来自分类Dev

psycopg2:如何使用psycopg2和python在冲突中进行插入和更新?

来自分类Dev

Python psycopg2 SELECT返回无

来自分类Dev

默认值在SQLAlchemy + PostgreSQL + aiopg + psycopg2中不起作用

来自分类Dev

Psycopg2 UNICODEARRAY

来自分类Dev

想法冠层Psycopg2安装

来自分类Dev

在MacOS上安装Psycopg2失败

来自分类Dev

康达安装psycopg2错误

来自分类Dev

pip安装psycopg2块

来自分类Dev

在Ubuntu 14.10上安装psycopg2

来自分类Dev

安装 psycopg2==2.6.1 时出错

来自分类Dev

如何使用pg_config错误安装psycopg2?

来自分类Dev

正确使用psycopg2进行序列化

来自分类Dev

psycopg2无法插入特定列

来自分类Dev

无法使用psycopg2连接到远程PostgreSQL

来自分类Dev

无法使用psycopg2连接到Postgres容器?

来自分类Dev

无法在Windows 10上使用Python 3.8安装“ psycopg2”

来自分类Dev

使用 psycopg2 缓存中间表

来自分类Dev

使用psycopg2连接到psql docker容器,但无法读取或写入

来自分类Dev

psycopg2的建筑轮...错误pip3安装了psycopg2吗?

来自分类Dev

Psycopg2显示错误