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
对于上一代 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
安装 psycopg2packages:
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