ElasticBeanstalk:从配置文件设置实例类型和安全组


10

我在通过.ebextensions/*.config应用程序捆绑包根目录中的文件定义实例类型和安全组时遇到麻烦。

简要地说,我有两个看起来像这样的配置文件:

.ebextensions/01-options.config

option_settings:
  [...]
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_ONE
    value: '01-options.config'
  [...]

.ebextensions/02-app-test-env.config

option_settings:
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: NODE_ENV
    value: 'Test'

  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_TWO
    value: '02-app-test-env'

  - namespace: aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value: t2.micro

  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-ys75dfs2

现在,正在设置环境变量,所以我知道它正在读取两个配置文件,但是未设置安全组和实例类型-即使在重建环境时,仍然像t1.micro使用默认安全组一样创建实例-我的设置没有被应用。

我在这里想念什么?如何使用.config文件定义实例类型?


应用启动并运行后,您是否检查日志?也许它抱怨您的选择之一?读完这篇文章后,我得到的印象是,由于以下语句,仅支持该表中列出的名称空间[...] The following table displays the namespaces that are supported for each container type. [...]。但是,如果真是如此,这似乎很奇怪。
Bazze,2015年

Answers:


11

您应该能够将配置文件中的内容用于launchconfiguration命名空间,但是您需要在命名空间和值周围使用单引号,就像在前两个中一样。

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: InstanceType
  value: 't2.micro'

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: SecurityGroups
  value: 'sg-ys75dfs2'

另外,如果使用eb cli 3.x,请确保注意eb日志错误。希望能有所帮助。


我试过了,无论是原始版本还是带引号的版本。都不适合我。我的.config中的其他设置(例如MinSize和MaxSize)正在运行。最终不得不使用:eb create -i't2.medium'代替了!
查尔斯

@Charles,是的,我也不再让InstanceType工作,也不知道问题出在哪里,因为正如您提到的,其他与实例相关的选项都可以工作。
泰勒(Tyler)2015年

感谢您的确认。如果我找到答案,将在AWS论坛上发布问题...将向您报告。
查尔斯


1
因此,我想可能是问题所在,看起来某些项目是在API级别设置的,您必须在创建环境后对其进行更新。 If you use the Elastic Beanstalk console or EB CLI to create environments, and you want to set these options using configuration files or saved configurations, you can remove the options settings with the AWS CLI or EB CLI after the environment is created.docs.aws.amazon.com/elasticbeanstalk/latest/dg/…)–
泰勒

2

如注释中所述,如果配置文件中的设置也已在环境级别上设置,则将被忽略(并且设置InstanceType是在环境级别上自动创建的)。

如果您希望将设置保留在配置文件中,则需要将其从环境中删除,可以InstanceType使用以下命令来完成:

aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

另请参阅AWS文档,以了解其他更改环境级别设置的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.