Назад | Перейти на главную страницу

ElasticBeanstalk: установите тип экземпляра и группу безопасности из файла конфигурации

У меня проблемы с определением типа экземпляра и групп безопасности через .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 файлы?

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

- 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. Надеюсь, это поможет.

Как упоминалось в комментариях, настройки в файлах конфигурации игнорируются, если они также установлены на уровне среды (и настройки для InstanceType является автоматически создается на уровне окружающей среды).

Если вы предпочитаете сохранить свои настройки в файлах конфигурации, вам необходимо удалить их из среды, вы можете сделать это для InstanceType с помощью следующей команды:

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

Смотрите также документы AWS для других способов изменения настроек уровня среды.