Elastic Beanstalk 上的 PostgreSQL(亚马逊 Linux 2)

PostgreSQL on Elastic Beanstalk (Amazon Linux 2)

对于上一代 Amazon Linux,我需要做的就是在 .ebextensions 中添加以下内容以使用 PostgreSQL:

packages:
    yum:
        postgresql93-devel: []

现在,当我使用以下平台在 EB 上进行部署时: Python 3.7 运行 64 位亚马逊 Linux 2/3.0.0

部署时出现以下错误:

[ERROR] Error occurred during build: Yum does not have postgresql93-devel available for installation

因此无法部署,因为我需要连接到 RDS 中的 PostgreSQL 数据库。

我需要在 .ebextensions 中做什么配置?

postgresql93-devel 已经很老了。 The yum PostgreSQL repository 从 9.5 开始。根据您的需要,您可能希望至少升级到 9.5。 PostgreSQL 12 是最新的生产版本。

编辑

至于@jordanm 的评论 - 是的,AWS Linux 2 环境确实有 PostgreSQL 9.2.24 可用。如果您对那个版本没问题,那么您可以安装 postgresql-devel。将您的 .ebextensions 更改为 运行:

packages:
    yum:
        postgresql-devel: []

这将为 9.2.24 安装 devel 包。

如果您想要更新一点的东西,显然会更难一些。我无法让它为 devel 包工作。如果您将 .ebextensions 更改为包含类似(未测试!)的内容:

container_commands:
    command: 'amazon-linux-extras install -y postgresql9.6'

然后您将获得 PostgreSQL 9.6,但它似乎没有可用的 devel 包。

似乎无法使用 https://yum.postgresql.org/ 的 RPM,因为不支持 AWS Linux 2。尝试 CentOS 或 RHEL 报错。

9.2 是否适用于您的环境?

以下作品:

packages:
    yum:
        amazon-linux-extras: []

commands:
    01_postgres_activate:
        command: sudo amazon-linux-extras enable postgresql10
    02_postgres_install:
        command: sudo yum install -y postgresql-devel

对我使用 Amazon Linus 1 有帮助的一点是,在插入 RDS 服务并将 Postgres 指定为驱动程序时,我根本不需要安装 Postgres。对于有这个问题的人来说,这只是一个想法。但也许只是尝试不显式安装 Postgres。

我还没有验证默认安装哪个版本。

此配置适用于 ElasticBeanstalk 环境(Python 3.6 运行 on 64bit Amazon Linux)。在此之后,我能够使用 requirements.txt

安装 psycopg2
packages:
    yum:
        libicu-devel: []

commands:
    01_postgres_libs:
        command: rpm -ivh --force https://yum.postgresql.org/10/redhat/rhel-6.9-x86_64/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm
    02_postgres_install:
        command: rpm -ivh --force https://yum.postgresql.org/10/redhat/rhel-6.9-x86_64/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm
    03_symink_pg_config:
        command: sudo ln -sf /usr/pgsql-10/bin/pg_config /usr/bin/pg_config
    04_postgres_devel:
        command: sudo rpm -ivh --force https://yum.postgresql.org/10/redhat/rhel-6.9-x86_64/postgresql10-devel-10.7-1PGDG.rhel6.x86_64.rpm