скажем, у меня есть несколько сред ElasticBeanstalk:
Каждая среда имеет действительно похожий Dockerrun.aws.json (какие тома должны быть связаны), но разные переменные среды (например, каков URL-адрес базы данных RDS, каков пароль для RDS, ключ API мандрила ...)
должен ли я хранить переменные среды для каждой среды в собственном файле (qa-Dockerrun.aws.json, prod-Dockerrun.aws.json, ...) и сообщить eb deploy
использовать этот файл (если да, то как я могу это сделать?)
или
я должен установить среду с eb setenv POSTGRES_PASS=xyzsecretabc
док и не поместите их в Dockerrun.aws.json
Любые другие предложения приветствуются
Я хочу, чтобы моя конфиденциальная информация не хранилась в git
конечно
Спасибо
Потратив некоторое время, я решил, что это решение:
сделать и то, и другое :)
Трудно отслеживать все переменные среды в эластичном beanstalk (и, очевидно, есть ограничение на количество, не проверял это doh), и глупо передавать пароли вашей базы данных для контроля версий.
держать вещи, которые уже являются общедоступными, например DB_PORT_5432_TCP_ADDR
(Общедоступный DNS RDS), DB_ENV_POSTGRES_USERNAME
(имя пользователя postgres), REDIS_PORT_6379_TCP_ADDR
, S3_BUCKET_NAME
(сегмент хранения активов) в Dockerrun.aws.json
и под контролем версий (git)
но такие вещи как DB_ENV_POSTGRES_PASSWORD
, SECRET_KEY_BASE
, MANDRIL_API_TOKEN
, AWS_SECRET_ACCESS_KEY
как среды Elastic Beanstalk