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

Ответы:


11

Вы должны иметь возможность использовать то, что у вас есть в этом конфигурационном файле, для пространства имен launchconfiguration, но вам нужны одинарные кавычки вокруг пространства имен и значения, как у вас в первых 2, которые работают.

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

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

Кроме того, обязательно следите за ошибками в журналах eb при использовании eb cli 3.x. Надеюсь, это поможет.


Я попробовал это как оригинал, так и версию с цитатами. Ни один не работал для меня. Другие настройки в моем .config, такие как MinSize и MaxSize, работают. Закончилось тем, что вместо этого пришлось использовать: eb create -i 't2.medium' ?!
Чарльз

@ Чарльз, да, я больше не заставляю InstanceType работать, не знаю, в чем проблема, потому что, как вы упомянули, работают другие опции, связанные с экземпляром.
Тайлер

Спасибо за подтверждение. Отправлю вопрос на форуме 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 для других способов изменения настроек уровня среды.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.