【问题标题】:How to upload and deploy on Elastic Beanstalk with the aws cli?如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?
【发布时间】:2018-12-21 16:39:06
【问题描述】:

我的设置: - 我的 Dockerrun.aws.json 文件中指定了一个多码头应用程序。 - 我的应用程序的图像存储在 ECR 上。

在 Elastic Beanstalk 的 AWS 控制台中,我可以“上传和部署”一个新的 Dockerrun.aws.json 文件。然后 Elastic Beanstalk 部署该版本。

是否可以通过aws elasticbeanstalk 命令行执行相同的操作(“上传和部署”)?

我找到的最接近的是aws elasticbeanstalk rebuild-environment --environment-id $ENVIRONMENT_ID。但这只会使用现有的 Dockerrun.aws.json 文件重建现有环境。如果我想在 cli 中使用另一个版本的 Dockerrun.aws.json 文件部署我的环境怎么办?

【问题讨论】:

  • 在 AWS 上,EBS == 弹性块存储。不是 Elastic Beanstalk。

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


【解决方案1】:

是的,您可以使用 AWS CLI 创建一个新部署,并且正如您所想,RebuildEnvironment 不是 API 调用。您正在寻找三个调用的组合——一个到 S3,两个到 Beanstalk

  1. 创建应用程序代码的 zip 文件
  2. 将 zip 文件上传到 S3。记下存储桶和密钥名称(这将使 AWS 和 Beanstalk 可以使用新版本)
  3. 调用 ElasticBeanstalk 的 CreateApplicationVersion API:

    aws elasticbeanstalk create-application-version --application-name <beanstalk-app> --version-label <a unique label for this version of code> --description <description of your changes> --source-bundle S3Bucket="<bucket name previously noted",S3Key="<key name previously noted"
    
  4. 调用 Beanstalk 的 UpdateEnvironment API:

    aws elasticbeanstalk update-environment --environment-name <name of environment> --version-label <label of app. version created above>
    

显然,这很乏味,因此我还建议您考虑通过 EBCLI 进行部署,它通过一个命令为您完成所有这些事情 -- eb deploy

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 2020-05-25
    • 2019-02-14
    • 2021-04-09
    • 1970-01-01
    • 2020-08-24
    • 2017-09-01
    • 2016-06-19
    • 2016-10-12
    相关资源
    最近更新 更多