EB 部署到多个环境

Posted

技术标签:

【中文标题】EB 部署到多个环境【英文标题】:EB Deploy to multiple environments 【发布时间】:2015-07-29 00:53:39 【问题描述】:

我有相同的代码库(一个 git 存储库),我想上传到多个弹性 beanstalk 环境。有没有办法做到这一点,如果是这样,我应该如何设置我的存储库,以便我可以推送到多个环境?

环境是网站的不同语言版本,我想在不同的 beanstalks 中运行。语言由环境参数设置。

【问题讨论】:

【参考方案1】:

回答我自己的问题。 AWS EB CLI 3+ 有一个很好的界面,可以部署到多个环境。如果您将另一个环境添加到您的应用程序,您可以简单地使用部署

eb deploy <environment-name>

【讨论】:

有没有办法用config.yml 文件做到这一点? 可以只执行一个命令部署到多个环境吗?例如eb deploy &lt;environment-1&gt; &lt;environment-2&gt; @HueyLy 目前看来这是不可能的。但是你可以做eb deploy &lt;env1&gt; -v &amp;&amp; eb deploy &lt;env2&gt; -v等等.. ;) 我已向 EB 团队提出了一项建议以允许这样做:github.com/aws/elastic-beanstalk-roadmap/issues/165【参考方案2】:

您可以通过在.elasticbeanstalk/config.yml 文件中添加如下配置,使 eb cli 引用来自不同分支的不同环境:

branch-defaults:
  main:
    environment: staging
  production:
    environment: production

在此示例中,当您从“main”分支运行 eb deploy 时,它将部署到名为“staging”的环境中,而当您从“生产”分支运行它时,它将部署到名为“生产”。

这种方法要求每个环境都有一个专门的分支。要将一个分支推送到多个环境,可以使用@adnan's answer,并在使用eb deploy命令时指定一个分支:

eb deploy <environment_name>

【讨论】:

【参考方案3】:

如果您指定版本标签,您可以在其他 eb deploy 命令中使用该版本:

eb deploy my-first-env -l version-1 && eb deploy my-second-env --version version-1

【讨论】:

【参考方案4】:

如果你使用 git 并且每个环境都有一个分支:

git checkout master
eb use <environment-name>

git checkout staging
eb use <environment-name>

git checkout worker
eb use <environment-name>

那你就可以了

eb deploy

这将部署到当前分支的定义环境。

在后台,这会在 /.elasticbeanstalk/config.yml 中设置关联

尽管如此,您仍然可以从任何分支eb deploy &lt;environment-name&gt;

【讨论】:

以上是关于EB 部署到多个环境的主要内容,如果未能解决你的问题,请参考以下文章

部署到 EB 的 Django 应用程序无法翻译主机名

为啥 eb deploy 在第一次部署时失败?

是否可以在预定时间进行“eb 部署”?

将弹性 beanstalk 应用程序部署到多个区域

想将我的应用部署到我的域,当eb部署成功后该怎么办?

AWS EB 部署问题