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