Переменные среды с использованием AWS CodeDeploy
У меня есть веб-приложение, которое использует переменные среды для некоторой его конфигурации (учетные данные БД, ключи API и т.д.). В настоящее время я использую Elastic Beanstalk для развертывания и могу легко установить их из AWS, что отлично, потому что у меня нет этих конфиденциальных данных в моей базе кода.
Тем не менее, я смотрю на переход от Elastic Beanstalk, поэтому я могу использовать немного больше возможностей для своих веб-экземпляров, и, естественно, я изучаю развертывание (из моей настройки CID Codeship) с помощью CodeDeploy. CodeDeploy довольно прямолинейный, и я интегрировал его с Codeship просто отлично, но я не заметил, что нет встроенной функции для установки переменных среды с помощью CodeDeploy, например, с Elastic Beanstalk. Есть ли у кого-нибудь лучшие методы для этого процесса?
Ответы
Ответ 1
Один из способов, который я нашел для установки переменных среды, - это запустить скрипты во время крюка AfterInstall (указанный в apppec http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html).
Я могу определить среду, в которой я сейчас развертываюсь, в этих сценариях, вызывая метаданные моих экземпляров, где я получаю свой экземпляр экземпляра, а затем использую aws cli для выполнения описаний-тегов, отфильтрованных в моем идентификаторе экземпляра, где у меня есть тег для среды
ID=$(curl "http://169.254.169.254/latest/meta-data/instance-id")
aws --region us-east-1 ec2 describe-tags --filters Name=resource-id,Values=$ID Name=key,Values=Environment
Мне это не нравится, но пока Code Deploy не имеет чего-то встроенного для передачи параметров в apppec, это лучшее, что я могу найти.
Ответ 2
Предполагая, что вы используете github для управления вашим кодом, вот один из возможных способов управления вашей средой.
Используйте git -crypt (https://github.com/AGWA/git-crypt) для шифрования конфиденциальной информации. Вы можете поместить ключ для декодирования этих файлов на сервере. Во время факсимильной обработки после установки вы можете расшифровать и настроить среду.
Преимущество в том, что теперь у вас есть вся информация в одном месте безопасным способом.
Ответ 3
Кажется, возможно использовать переменные среды (главным образом, ваш DEPLOYMENT_GROUP_NAME).
См. это руководство от Amazon.