如何使用 AWS CLI 2 将更新后的 JAR 上传到现有的 Java Elastic Beanstalk 实例?
How do I upload an updated JAR to an existing Java Elastic Beanstalk instance using the AWS CLI 2?
我有一个 Java 通过网络手动设置的 Elastic Beanstalk 实例 UI。
我可以随时通过 UI 手动上传更新的 JAR。
如何通过 AWS CLI 2 完成相同的操作?
你做两组:
- 使用 create-application-version 使用新程序创建新的应用程序版本。请注意您要使用的版本的
--version-label
。
- 更新您的 EB 环境以使用 update-environment 的新应用程序版本。您必须提供第 1 步中的
--version-label
。
或者,您可以使用 AWS EB CLI AWS 专门为 EB 开发的 CLI 工具。
我使用 maven 构建我的 JAR。
mvn clean install
这会在 ./target
目录中生成 JAR my-app.jar
。
然后我执行以下操作
export version=1.0-`date +"%Y%m%d-%H%M%S"`
这是我将在整个过程中使用的环境变量。
第 1 步。将 JAR 上传到 S3 存储桶
aws s3 cp ./target/my-app.jar s3://my-app.foo.bar/my-app-${version}.jar
第 2 步。在 Elastic Beanstalk 中创建应用程序版本。
这引用了在步骤 1 中上传到 S3 的 JAR。
aws elasticbeanstalk create-application-version \
--application-name my-app \
--version-label ${version} \
--source-bundle S3Bucket="my-app.foo.bar",S3Key="my-app-${version}.jar"
步骤 3. 在 Elastic Beanstalk 中部署版本
aws elasticbeanstalk update-environment \
--application-name my-app \
--environment-name MyApp-env \
--version-label ${version}
这里要注意的重点是;
a) 您没有部署 JAR。您部署一个版本。 Version 指向 JAR。这与您通过 UI 所做的(您所看到的)不同,您只需上传 JAR 即可部署。
b) Version的source-bundle
指向JAR。是的,虽然在 Java 世界中,'source' 这个词有某种含义,而 JAR 不是源代码,但在 Elastic Beanstalk 世界中,'source' 是您的可执行代码
c) Version 指向的 JAR 必须在 S3 中。 是您上传 JAR 的地方。
我有一个 Java 通过网络手动设置的 Elastic Beanstalk 实例 UI。
我可以随时通过 UI 手动上传更新的 JAR。
如何通过 AWS CLI 2 完成相同的操作?
你做两组:
- 使用 create-application-version 使用新程序创建新的应用程序版本。请注意您要使用的版本的
--version-label
。 - 更新您的 EB 环境以使用 update-environment 的新应用程序版本。您必须提供第 1 步中的
--version-label
。
或者,您可以使用 AWS EB CLI AWS 专门为 EB 开发的 CLI 工具。
我使用 maven 构建我的 JAR。
mvn clean install
这会在 ./target
目录中生成 JAR my-app.jar
。
然后我执行以下操作
export version=1.0-`date +"%Y%m%d-%H%M%S"`
这是我将在整个过程中使用的环境变量。
第 1 步。将 JAR 上传到 S3 存储桶
aws s3 cp ./target/my-app.jar s3://my-app.foo.bar/my-app-${version}.jar
第 2 步。在 Elastic Beanstalk 中创建应用程序版本。
这引用了在步骤 1 中上传到 S3 的 JAR。
aws elasticbeanstalk create-application-version \
--application-name my-app \
--version-label ${version} \
--source-bundle S3Bucket="my-app.foo.bar",S3Key="my-app-${version}.jar"
步骤 3. 在 Elastic Beanstalk 中部署版本
aws elasticbeanstalk update-environment \
--application-name my-app \
--environment-name MyApp-env \
--version-label ${version}
这里要注意的重点是;
a) 您没有部署 JAR。您部署一个版本。 Version 指向 JAR。这与您通过 UI 所做的(您所看到的)不同,您只需上传 JAR 即可部署。
b) Version的source-bundle
指向JAR。是的,虽然在 Java 世界中,'source' 这个词有某种含义,而 JAR 不是源代码,但在 Elastic Beanstalk 世界中,'source' 是您的可执行代码
c) Version 指向的 JAR 必须在 S3 中。 是您上传 JAR 的地方。