Многие PaaS предпочитают конфигурирование с помощью переменных среды, потому что это просто и понятно, и все языки поддерживают их "из коробки". В Go вы можете просто вызвать os.Getenv()
, чтобы получить значение переменной среды.
Среда, подобная DEV
или PROD
, наряду с некоторыми параметрами обычно предоставляется через средупеременные для приложения, поэтому часто нет необходимости в файле конфигурации. Если имеется обширная конфигурация, сама она (если не слишком большая) также может быть в переменной среды, например, в форме, закодированной в base64.
Если невозможно поместить файл конфигурации в переменную средыпоместите его имя в переменную env, например CONFIG_FILE=grafana.productA.config.json
для целей dev / CI, и установите CONFIG_FILE=grafana.productB.config.json
на своем производственном сервере. Таким образом, ваше приложение может загрузить соответствующий файл конфигурации.
Если конфигурация содержит конфиденциальную информацию (например, пароли или закрытые ключи), «перенесите» ее в переменные среды, которые, конечно, могут различаться в каждой из ваших сред (например,dev, CI, prod).