下面是应用程序的设置,该应用程序将docker容器运行到elasticbeanstalk中。
第1步:
创建了一个名为apptest的父文件夹,并在其中放置了Dockerfile,package.json和小型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
之类的其他资源却从命令行和文件上传中都得到体现。
我觉得它有点小东西丢失了,我无法从博客和文档中找出来。感谢您的提前帮助。
答案 0 :(得分:1)
在eb create
期间,EBCLI传递了许多选项设置的自身默认值,其中包括实例类型。由于EBCLI不会解析.ebextensions,并且Beanstalk服务更喜欢EBCLI传递的默认值,因此您的.ebextensions中指定的实例类型将被忽略。
有两种方法可以解决此问题:
eb config
之后致电eb create
。在交互模式下,更改实例类型,然后保存并退出。eb create
的身分呼叫eb create -i m4.xlarge