Как получить имя среды при использовании Environment в Clojure?

Как получить имя среды при использовании Environment в Clojure? Я имею в виду: dev,: test и т. Д. Причина, по которой вы хотите это сделать, заключается в том, чтобы передать его Йеллеру, чтобы при появлении ошибок он мог сообщить мне, в какой среде они произошли. Ошибки в постановке обрабатываются иначе, чем ошибки в производстве.

2 ответа

Решение

Environ предоставляет только доступ к переменным окружения, вам нужно установить их самостоятельно. Ты можешь использовать lein-environ установить переменные среды в вашем project.clj в разных профилях. Эти профили будут выбраны leiningen и объединены вместе, к которым вы можете получить доступ из своего кода. Например, у нас есть:

  :profiles {:dev {:resource-paths ["test-resources"]
                   :env            {:environment    "development"
                                    :db-host        "localhost"
                                    :port           5000}}}

Вместо этого мы предоставляем фактические переменные среды.

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

Другие вопросы по тегам