【问题标题】:Upon initial environment create using eb create the ebextensions are not reflected在使用 eb create 创建初始环境时,不会反映 ebextensions
【发布时间】:2020-05-02 11:20:49
【问题描述】:

以下是在 elasticbeanstalk 中运行 docker 容器的应用程序的设置。

第 1 步:

创建了父文件夹 apptest 并在其中放置了 Dockerfile、package.json 和 small hello world server.js 节点应用程序。

第 2 步:

在父文件夹apptest 中运行命令eb init,该命令创建了一个隐藏文件夹.elasticbeanstalk,其中config.yml 包含默认设置。

第 3 步:

添加.ebextensions 和配置文件01_run.config,包括以下配置以更新实例类型。

option_settings:
    aws:autoscaling:launchconfiguration :
        InstanceType : "m4.xlarge"

请注意,到目前为止还没有创建环境。由于我创建了扩展,因此应该使用指向m4.xlarge 的实例类型覆盖默认值。

第 4 步:

现在运行命令eb create apptest-dev(例如)并创建环境


问题:

创建环境时,它没有m4.xlarge,而是使用默认实例类型t2.micro 创建的。但是,当从控制台(不包括 .elasticbeanstalk 文件夹)将此文件夹内容的压缩版本上传到环境中时,会选择 ebextensions 文件夹配置。只有option_settings 没有工作,但其他资源如files、commands 正在从命令行和文件上传中反映出来。

我觉得它缺少一种非常小的东西,我无法从博客和文档中弄清楚。提前感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

    在eb create 期间,EBCLI 为许多选项设置传递了它自己的默认值,其中包括实例类型。由于 EBCLI 不解析 .ebextensions,并且 Beanstalk 服务更喜欢 EBCLI 传递的默认值,因此您的 .ebextensions 中指定的实例类型将被忽略。

    有两种方法可以解决这个问题:

    1. 在eb create 之后调用eb config。在交互模式下,更改实例类型,保存退出。
    2. 将eb create 称为eb create -i m4.xlarge

    【讨论】:

    • 是的,我们可以从命令行传递选项。但我认为option_settings 应该有一些意义,其中可以提及作为命令行提供的所有选项。
    • 详细阅读文档后,我发现docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 定义了优先顺序,并且默认值始终仅在推荐值的情况下覆盖显式。 @progfan,请告诉我这种理解是否正确。
    • @KartikNarayanaMaringanti,你的理解是正确的。
    猜你喜欢
    • 1970-01-01
    • 2019-05-08
    • 2018-09-20
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多