如何将 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