首页 文章

将Elastic Beanstalk配置更改为Docker

提问于
浏览
2

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

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

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

有任何想法吗?

EDIT:

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

3 回答

  • 1

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

  • 1

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

  • 2

    我找到了一种方法来做到这一点,没有url交换或删除和使用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
    

    环境恢复正常!

相关问题