【问题标题】:Change Elastic Beanstalk Configuration To Docker将 Elastic Beanstalk 配置更改为 Docker
【发布时间】:2015-06-16 10:43:41
【问题描述】:

我目前正在为 Elastic Beanstalk 应用程序运行 Node JS 配置。我想将环境更改为 Docker 而不必删除环境。有谁知道我该怎么做?

有一个重建环境的操作,但我不确定这是否会让我更改配置。

我还没有将任何内容上传到环境中,所以我不担心文件或数据库会被删除。

有什么想法吗?

编辑:

我的问题是我在另一台服务器上有一个 DNS 指向我的弹性 beanstalk 域 (domain.elasticbeanstalk.com)。如果我删除该应用程序,我可以恢复该名称吗?

【问题讨论】:

  • 据我所知这是不可能的,您必须创建不同的环境:-/ 环境更新的所有选项列表docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
  • @sap1ens 我的问题是我在另一台服务器上有一个 DNS 指向我的弹性 beanstalk 域 (domain.elasticbeanstalk.com)。如果我删除该应用程序,我可以恢复该名称吗?
  • 啊,很容易解决!您只需使用 URL domain2.elasticbeanstalk.com 创建另一个环境,然后使用交换 URL 功能 - 它几乎可以立即运行。
  • @sap1ens,谢谢先生。这行得通!如果您想在下面写下答案,我会将其标记为正确。再次感谢。
  • 当然,我很高兴它对你有用! :)

标签: amazon-web-services docker amazon-elastic-beanstalk


【解决方案1】:

您实际上无法在 Docker、Node.js 等之间更改环境类型(基于 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html),但您可以创建具有不同域的新环境并使用交换 CNAME 功能。在这种情况下,您的新环境将获得相同的 URL(旧的可以安全删除)。

【讨论】:

    【解决方案2】:

    您可以使用 EB CLI 执行此操作。 (3.2+) 只需执行 eb config 并将解决方案堆栈名称更改为所需的确切解决方案堆栈字符串。

    【讨论】:

      【解决方案3】:

      我找到了一种方法来做到这一点,而无需使用 aws cli 进行 url 交换或删除和重新创建环境。这可能是一种 hack,但还不错,而且很有效。

      首先,更新环境以使用新的解决方案堆栈。我发现我必须删除新解决方案堆栈中不支持的选项设置,并且我必须同时更改为适用于新解决方案堆栈的新应用程序版本:

      aws elasticbeanstalk update-environment --solution-stack-name \
      "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1" \
      --environment-name my-env-name \
      --options-to-remove Namespace=aws:elasticbeanstalk:container:python,OptionName=WSGIPath \
      --version-label new-version-label
      

      此命令有效,但会导致环境混乱,因为 beanstalk 会更新所有设置,但您仍然有一个带有旧解决方案堆栈的底层 EC2。所以重建环境:

      aws elasticbeanstalk rebuild-environment --environment-name my-env-name
      

      环境恢复得很好!

      【讨论】:

        猜你喜欢
        • 2019-09-24
        • 2016-04-18
        • 2017-01-07
        • 2014-09-25
        • 2014-07-21
        • 2020-12-08
        • 2012-11-25
        • 2021-09-30
        • 2015-03-26
        相关资源
        最近更新 更多