簡體   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