【问题标题】:How do I upload an updated JAR to an existing Java Elastic Beanstalk instance using the AWS CLI 2?如何使用 AWS CLI 2 将更新的 JAR 上传到现有 Java Elastic Beanstalk 实例?
【发布时间】:2021-01-02 16:37:29
【问题描述】:

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

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

如何通过 AWS CLI 2 完成相同的任务?

【问题讨论】:

    标签: java amazon-web-services amazon-elastic-beanstalk aws-cli


    【解决方案1】:

    我使用 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。您部署一个版本。版本指向 JAR。这与(您所看到的)您通过 UI 执行的操作不同,您只需上传 JAR 并进行部署。

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

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

    【讨论】:

      【解决方案2】:

      您分两组

      1. 使用create-application-version 为您的新程序创建新的应用程序版本。记下您要使用的版本的 --version-label
      2. 更新您的 EB 环境以使用带有update-environment 的新应用程序版本。您必须在第 1 步中提供 --version-label

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

      【讨论】:

      • 谢谢@Marcin,第一步(创建应用程序版本)很好。在第二步(更新环境)中,我在哪里指定 JAR 的路径?
      • @Vihung 您只需使用--version-label 指定要使用的应用程序版本标签。
      • 我花了一段时间才弄明白。 --source-bundle 指向 JAR。但它必须在 S3 存储桶中
      • @Vihung 好的,所以你采取了我的步骤,投入了我,并根据我的基本相同(减去 S3)添加了你自己的答案?。
      • 感谢您的指点。但它并没有完全回答所问的问题 - 具体来说,我如何上传 JAR。此外,文档链接也有帮助,但也不回答具体问题。
      猜你喜欢
      • 2016-06-20
      • 1970-01-01
      • 2016-05-10
      • 2018-12-21
      • 2016-02-08
      • 2015-05-25
      • 2022-12-13
      • 2016-10-05
      • 2021-08-24
      相关资源
      最近更新 更多