繁体   English   中英

如何使用 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?

我有一个通过 Web UI 手动设置的 Java Elastic Beanstalk 实例。

我可以随时通过 UI 手动上传更新的 JAR。

如何通过 AWS CLI 2 完成相同的操作?

我使用 maven 来构建我的 JAR。

mvn clean install

my-app.jar./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。 您部署一个版本。 而版本指向 JAR。 这不同于(您看到的)您通过 UI 执行的操作,在 UI 中您只需上传 JAR 并进行部署。

b) 版本的source-bundle指向 JAR。 是的,虽然在 Java 世界中,“源”这个词意味着某些东西,而 JAR 不是源,但在 Elastic Beanstalk 世界中,“源”是您的可执行代码

c) Version 指向的 JAR 必须在 S3 中。 是您上传 JAR 的地方。

分两组进行

  1. 使用create-application-version使用您的新程序创建新的应用程序版本 请注意您要使用的版本的--version-label
  2. 通过update-environment更新您的 EB 环境以使用新的应用程序版本。 您必须提供步骤 1 中的--version-label

或者,您可以使用AWS EB CLI ,它是 AWS 专门为 EB 开发的 CLI 工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM