Сейчас мои переменные базы данных определены как RDS_*
, однако я хотел бы переназначить их в соответствии с соглашениями моего приложения.
Это поможет избежать записи обнаружений, специфичных для AWS, внутри моего проекта, что, очевидно, желательно.
Есть несколько разных вариантов, каждый со своими подводными камнями:
1. Добавление переменных среды в конфигурацию EB
Находясь внутри вашей среды, перейдите в раздел «Конфигурация», а затем в раздел «Конфигурация программного обеспечения». Там вы увидите список переменных среды, а внизу вы можете указать свои собственные переменные. Обратной стороной этого является то, что теперь есть способ динамически отображать значения из переменных среды AWS. Если значение в AWS изменилось, вам необходимо вручную обновить свое. Скорее всего, это произойдет в случае обновления / понижения версии базы данных. Таким образом, вы захотите обновить хост для БД до новой конечной точки RDS. (ПРИМЕЧАНИЕ: это основано на опциях, доступных для сред PHP. Я видел варианты для других языков, но это может быть старая документация.)
2. Добавление сценария после развертывания
Это немного неудобно для beanstalk, но можно запускать сценарии после развертывания. Я не буду вдаваться в подробности, но в основном вам нужно будет добавить сценарии после развертывания, как описано в этом статья по умолчанию beanstalk ami. Затем вам нужно будет скопировать экземпляр как новый ami и переключить его в экземплярах beanstalk, чтобы использовать его по умолчанию. В сценарии после развертывания вы можете добавить сопоставление с переменными среды.
3. Добавление сопоставления в код
Я понимаю, что вы не хотите этого делать, но я думаю, что это будет наименьшей головной болью для вас. Я включил очень простой пример на PHP. Будьте осторожны, меняя местами $ _ENV и getenv () / putenv () / $ _ SERVER, если вы используете PHP, поскольку они извлекаются из разных источников и могут быть изменены независимо.
<?php
if(getenv('RDS_VAR')) {
putenv('NEW_VAR', getenv('RDS_VAR'))
}
?>
Последние мысли
Я использую комбинацию 1 и 3 при развертывании приложения в Beanstalk, поскольку это дает наибольшую гибкость при работе с динамическими переменными среды. Сначала я сопоставляю значения с конфигурацией своих приложений, как описано в №3, затем, если я хочу спланировать возможную замену конечной точки RDS, пароля или имени пользователя, я могу добавить переменные среды, как указано в №1, и переопределить мою среду AWS. отображение. Это позволяет мне оставаться в синхронизации с переменными среды AWS, а также вручную переопределять их в конфигурации программного обеспечения, если мне нужно заменить БД для резервного копирования.