Обнаружение dev env vs. prod env Elasti c Beanstalk - PullRequest
0 голосов
/ 03 августа 2020

У меня есть приложение Django и два Elasti c Beanstalks envs: dev и prod. Я хочу сделать какой-то оператор if в моем приложении Django, чтобы определить, в каком env я развертываю (или работаю локально), и использовать разные настройки соответственно .

Как мне это сделать? Спасибо !!

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Один из способов - использовать переменные среды EB . В каждой из ваших сред EB вы можете определить переменную среды ENVIRONMENT в EB со значениями prod или dev.

Ваше приложение Django проверит переменную ENVIRONMENT и загрузит соответствующий конфигурация. На вашей локальной рабочей станции отсутствие ENVIRONMENT будет указывать вашему приложению, что вы находитесь на локальной рабочей станции.

0 голосов
/ 03 августа 2020

Я обычно включаю такой фрагмент кода в конец моих настроек. Py:

# use or create a local_settings.py file in the same directory as this file to override any production settings - i.e. to turn on debugging and/or change database connection strings.
# do not add the local_settings.py file to the source control
try:
    from .local_settings import *
except ImportError as e:
    pass

, и только на моем локальном компьютере / dev есть файл с именем 'local_settings.py' в тот же каталог, в который могут быть импортированы дополнительные параметры конфигурации, чтобы переопределить производственные параметры.

Если файл существует, он импортируется, а если его там нет, try / except просто игнорирует отсутствующий файл.

...