如何将 AWS CLI 与 Elastic Beanstalk 一起使用?

Posted

技术标签:

【中文标题】如何将 AWS CLI 与 Elastic Beanstalk 一起使用?【英文标题】:How to use AWS CLI with Elastic Beanstalk? 【发布时间】:2016-10-05 07:41:41 【问题描述】:

在文档中指出 EB CLI 已被 AWS CLI 取代,但所有文档仍在讨论 EB CLI。

我已经在 Elastic Beanstalk 控制台中创建了一个应用程序,现在我可以开始开发了。我已经在 Ubuntu 上安装了所有工具,并且已经在本地对其进行了测试。现在我想将它部署到 Elastic Beanstalk。如何使用 AWS CLI 执行此操作?

【问题讨论】:

你经历过这个吗? docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/… 安装 aws cli 后,您必须使用 aws cli elasticbeanstalk check-dns-availability <options> 执行命令 也可以查看docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 您在文档中的哪个位置阅读了有关 AWS CLI 替换 EB CLI 的信息?我在任何地方都找不到。 【参考方案1】:

您必须从您的应用程序创建一个源包,请在此处查看详细信息:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html(或者您也可以使用AWS CodeCommit 或AWS CodeBuild 作为您的应用程序的源代码。)

然后,您可以使用 AWS CLI 从您的应用程序创建新版本并将其部署到一个应用程序环境。 (请参阅 EBS here 的 CLI 文档。)


创建一个源包:

zip MyCodeBundle.zip <source files>

将其上传到 S3:

aws s3 cp MyCodeBundle.zip s3://a-bucket-where-you-store-your-source-bundles/

Create a new application version 使用您刚刚上传的源包:

aws elasticbeanstalk create-application-version --application-name YourEBSAppName --version-label YourVersionLabel --source-bundle S3Bucket="a-bucket-where-you-store-your-source-bundles",S3Key="MyCodeBundle.zip"

最后你 update one of your environments 使用那个版本(这是 deploy,尽管新的 AWS CLI for EBS 完全没有那个动词 - 这让我有点困惑):

aws elasticbeanstalk update-environment --application-name YourEBSAppName --environment-name YourEBSEnvironmentName --version-label YourVersionLabel

【讨论】:

谢谢!我一直在寻找一种在没有亚马逊提供的奇怪的 git 集成东西的情况下部署到 EB 的方法。这比我希望的要长一点,但它确实有效。 如果您尝试通过 Github 操作运行此操作,则需要添加区域标志。 “--region us-east-1” 你能帮我解决这个问题 - 我怎么知道环境部署是否完成?因为即使在 aws elasticbeanstalk update-environment 成功之后-部署仍在 aws 中处理【参考方案2】:

为了补充@qqbenq 的答案,这里是一个AWS CLI 部署到beanstalk 的示例,带有给定的deployment policy:

aws elasticbeanstalk update-environment \
    --environment-name <eb-env-name> \
    --version-label <verion-label-to-deploy> \
    --option-settings \
        Namespace=aws:elasticbeanstalk:command,OptionName=DeploymentPolicy,Value=Rolling \
        Namespace=aws:elasticbeanstalk:command,OptionName=BatchSizeType,Value=Fixed \
        Namespace=aws:elasticbeanstalk:command,OptionName=BatchSize,Value=1

【讨论】:

这真的节省了我的时间,我所寻找的只是更新一个custom value 内部配置。这是我最后的命令:aws elasticbeanstalk update-environment --environment-name myenvname --option-settings Namespace=aws:elasticbeanstalk:application:environment,OptionName=CONFIGURATION_NUMBER,Value=1.2.003 @mdabdullah 很高兴这个答案很有用:-)

以上是关于如何将 AWS CLI 与 Elastic Beanstalk 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Elastic Beanstalk 配置 aws cli 配置文件?

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

解决与 urllib3 冲突以在 Macos 上使用 anaconda 安装 AWS elastic beanstalk CLI?

使用 AWS CodeBuild 和 EB CLI 部署到 AWS Elastic Beanstalk

如何替换在我部署 Elastic Beanstalk 应用程序时不再工作的 AWS CLI 命令

AWS Elastic Beanstalk CLI 安装错误