如何使用aws cli在Elastic Beanstalk上上传和部署?

时间:2018-07-13 10:09:00

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

我的设置: -我在Dockerrun.aws.json文件中指定了一个multidocker应用程序。 -我的应用程序图像存储在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文件部署环境,怎么办?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用AWS CLI创建新的部署,并且如图所示,#btn-form-submit:before { content: "Submit"; } form.amp-form-submitting #btn-form-submit:before { content: "Submitting"; } 不是API调用。您正在寻找三个呼叫的组合-一个呼叫S3,两个呼叫Beanstalk

  1. 创建您的应用程序代码的zip文件
  2. 将zip文件上传到S3。请注意存储区和键名(这将使新版本可用于AWS,从而可用于Beanstalk)
  3. 执行对ElasticBeanstalk的CreateApplicationVersion API的调用:

    RebuildEnvironment
  4. 执行对Beanstalk的UpdateEnvironment 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"
    

显然,这很繁琐,所以我也建议您考虑通过EBCLI进行部署,该过程通过一个命令aws elasticbeanstalk update-environment --environment-name <name of environment> --version-label <label of app. version created above>

为您完成所有这些操作