如何解决如何使用AWS CLI 2将更新的JAR上传到现有的Java Elastic Beanstalk实例?
我有一个通过Web UI手动设置的Java Elastic Beanstalk实例。
我可以随时通过UI手动将更新的JAR上传到其中。
如何通过AWS CLI 2完成相同的工作?
解决方法
我使用maven来构建JAR。
mvn clean install
这将在my-app.jar
目录中生成JAR ./target
。
然后我执行以下操作
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)版本指向的JAR必须在S3中。 那就是您上传JAR的地方。
,您可以进行两套操作:
- 使用create-application-version使用新程序创建新的应用程序版本。注意您要使用的版本的
--version-label
。 - 更新您的EB环境,以使用带有update-environment的新应用程序版本。您必须从第1步开始提供
--version-label
。
或者,您可以使用AWS EB CLI,它是由AWS专为EB开发的CLI工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。