如何使用AWS CLI2将更新的JAR上传到现有的Java Elastic Beanstalk实例



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

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

如何通过AWS CLI 2实现同样的功能?

我使用maven来构建我的JAR。

mvn clean install

这将在./target目录中生成JARmy-app.jar

然后我做以下

export version=1.0-`date +"%Y%m%d-%H%M%S"`

这是一个我将在整个过程中使用的环境变量。

步骤1。将JAR上传到S3 bucket

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所做的(您所看到的(不同,在UI中,您只需上传JAR并部署它。

b( Version的source-bundle指向JAR。是的,尽管在Java世界中,单词"source"的意思是什么,JAR不是源,但在Elastic Beanstalk世界中,"source"是您的可执行代码

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

您可以在两个集合中完成

  1. 使用创建应用程序版本使用新程序创建新的应用程序版本。请注意要使用的版本的--version-label
  2. 更新您的EB环境以使用带有更新环境的新应用程序版本。您必须从步骤1开始提供--version-label

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

最新更新