У меня есть веб-приложение, которое использует переменные среды для некоторых настроек (учетные данные БД, ключи API и т. Д.). В настоящее время я использую Elastic Beanstalk для развертывания и могу легко настроить их из AWS, что здорово, потому что у меня нет этих конфиденциальных данных в моей базе кода.
Тем не менее, я собираюсь перейти с Elastic Beanstalk, чтобы использовать немного больше гибкости для своих веб-экземпляров, и, естественно, я рассматриваю развертывание (из моей настройки Codeship CI) с использованием CodeDeploy. CodeDeploy довольно прост, и я отлично интегрировал его с Codeship, но я заметил, что нет встроенной функции для установки переменных среды с помощью CodeDeploy, как в случае с Elastic Beanstalk. У кого-нибудь есть лучшие практики для этого процесса?
У Amazon для этого есть довольно интересная функция: Магазин параметров. Вы можете добавить туда пары ключ / значение, надежно зашифрованные, а затем получить их в своих сценариях CodeDeploy, например:
password=$(aws ssm get-parameters --region us-east-1 --names MySecureSQLPassword --with-decryption --query Parameters[0].Value)
Вам нужно будет выполнить некоторую настройку IAM, чтобы разрешить доступ между CodeDeploy / Parameter Store, но в указанной выше статье вы узнаете об этом.