AWS
本掌机饿哦我们将介绍如何将 Jmix 应用程序构建为可执行 JAR 并在 AWS Elastic Beanstalk 服务中部署。
开始之前,请先创建 AWS 账号并确保能访问 AWS 控制台。
我们将使用 PostgreSQL 数据库。 |
如果只是为了测试或者演示目的,可以考虑使用 快速部署至 AWS 云。这种情况下,应用程序会与数据库一并部署在一个新创建的 EC2 实例中运行。 |
部署可执行 JAR
准备应用程序
由于现在有多个数据库连接(本地开发库以及 AWS),我们需要配置附加属性文件,包含 AWS 环境的连接参数。
要在不同的配置文件之间切换,我们将使用 运行时配置文件。示例中,我们将使用 aws
配置文件名。
根据 Spring Boot 文档 的命名规则要求,我们新建名为 application-aws.properties
的配置文件。
文件中,我们将使用 AWS Elastic Beanstalk 环境变量指定数据库连接参数:
-
RDS_HOSTNAME
- 内部 Beanstalk 数据库服务器名 -
RDS_PORT
- Beanstalk 分配的数据库端口 -
RDS_DB_NAME
- 数据库名称 -
RDS_USERNAME
- 数据库用户名 -
RDS_PASSWORD
- 数据库密码
注意,这些变量仅在通过 Beanstalk 创建数据库时使用。如果你是用 RDS 或其他 AWS 服务创建的数据库,则不需要这些变量。 |
除了数据源坐标外,我们还需要在部署前设置下列属性:
-
server.port
- 默认设置为 5000。也可以指定为 Beanstalk 的环境属性SERVER_PORT
。我们稍后介绍如何设置 Beanstalk 环境。 -
jmix.liquibase.enabled
- 如果设置为true
(默认值),则会在应用程序启动时自动执行 Liquibase 数据库脚本。
所以,application-aws.properties
文件内容如下:
main.datasource.url = jdbc:postgresql://${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME}
main.datasource.username = ${RDS_USERNAME}
main.datasource.password = ${RDS_PASSWORD}
server.port=5000
应用程序准备完成,可以创建可执行 JAR 并继续下面的步骤。
创建 AWS 环境
登录 AWS 控制台,从服务列表选择 Elastic Beanstalk。
然后在 Beanstalk 主页面点击相应的按钮创建应用程序。输入下列应用程序信息:
-
Application name - 应用程序名称。
-
Platform - Java。根据需要选择平台分支。
在 Application code 部分选择 Upload your code。在 Source code origin 部分的 Local file 点击 Choose file 按钮上传应用程序 JAR。JAR 一般位于 /build/libs
文件夹。
点击 Configure more options 按钮添加数据库。在配置页面,编辑数据库参数:
按照这个图片设置数据库参数:
推荐测试环境中设置 Retention 为 Delete 。生产环境设置为 Create snapshot 避免不小心删除应用程序时数据丢失。
|
创建万数据库后,我们还需要一个步骤指定运行时配置文件启用正确的应用程序配置 - aws
。在环境配置页面编辑 Software 设置:
在 Environment properties 部分,添加 SPRING_PROFILES_ACTIVE
属性,设置为 aws
:
保存全部设置并创建应用程序。创建和启动过程一般需要 5-10 分钟。