15

У меня есть веб-приложение, которое использует переменные среды для некоторой конфигурации (учетные данные БД, ключи API и т. Д.). В настоящее время я использую Elastic Beanstalk для развертывания и могу легко установить их из AWS, что отлично, потому что у меня нет этих конфиденциальных данных в моей базе кода.Переменные окружения с использованием AWS CodeDeploy

Тем не менее, я ищу переход от эластичного бобового стека, чтобы я мог более гибко использовать свои веб-экземпляры, и, естественно, я изучаю развертывание (из моей настройки CID Codeship) с помощью CodeDeploy. CodeDeploy довольно прямолинейный, и я интегрировал его с Codeship просто отлично, но я заметил, что нет встроенной функции для установки переменных окружения с помощью CodeDeploy, например, с Elastic Beanstalk. Есть ли у кого-нибудь лучшие методы для этого процесса?

+3

Ищете ответ на этот вопрос. – Jon

ответ

5

Один из способов, который я нашел для установки переменных среды, - это скрипты, запускаемые во время крюка AfterInstall (заданные в apppec http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html).

Я могу определить среду, в которой я в настоящее время развертываюсь в этих сценариях, вызывая метаданные моих экземпляров, где я получаю свой идентификатор экземпляра, а затем использую aws cli для выполнения описаний-тегов, отфильтрованных в моем экземпляре Id, где у меня есть тег набор для окружающей среды

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 

Я не люблю, но пока код Deploy не имеет что-то встроенное в передавать параметры appspec, это лучшее, что я могу найти.

+0

Если вы не хотите получать переменные env с помощью aws cli/sdk, лучше использовать AWS Parameter Store, предназначенный для хранения секретов. Учебник [здесь] (https://aws.amazon.com/blogs/mt/use-parameter-store-to-securely-access-secrets-and-config-data-in-aws-codedeploy/), однако он все еще не интегрирован с appspec.yml – antiplayer

2

Предполагая, что вы используете GitHub для управления кодом, вот один из потенциальных способов для управления средой

Используйте ГИТ-крипту (https://github.com/AGWA/git-crypt) для шифрования конфиденциальной информации. Вы можете поместить ключ для декодирования этих файлов на сервере. Во время codedeploy afterInstall фаза вы можете расшифровать и настроить среду.

Преимущество в том, что у вас есть вся информация в одном месте безопасным способом.

-1

Кажется, что можно использовать переменные среды (главным образом, ваш DEPLOYMENT_GROUP_NAME).

См. this guide от Amazon.

 Смежные вопросы

  • Нет связанных вопросов^_^