将Elastic Beanstalk配置更改为Docker

时间:2015-04-10 16:13:21

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

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

有重建环境的操作,但我不确定是否允许我更改配置。

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

有什么想法吗?

修改

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我找到了一种方法,可以在不使用urs交换或删除并使用aws cli重新创建环境的情况下执行此操作。它可能是一种黑客攻击,但它并不太糟糕而且有效。

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

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

环境恢复得很好!