Как установить env var во время выполнения или развертывания, чтобы выбрать правильную конфигурацию

<сильный>1. Кратко опишите проблему

Мы используем модуль конфигурации (узел), который позволяет нам устанавливать различные параметры конфигурации, например, параметры базы данных или другие параметры конечной точки API с помощью нашего приложения, размещенного в firebase.

если для переменной APP_ENV установлено значение «dev», то она указывает на экземпляры dev API и настройки базы данных, то же самое с «test» и «prod».

При работе в контейнере у нас просто есть сценарий оболочки, который устанавливает APP_ENV, а затем запускает сервер, и выбираются правильные параметры конфигурации.

Как мы делаем это с хостингом Firebase?

Используя: https://github.com/lorenwest/node-config

<сильный>2. Расскажите о том, что вы уже пробовали

Просмотрел документацию, ничего не нашел.

<сильный>3. Покажи код

https://github.com/lorenwest/node-config

<сильный>4. Опишите ожидаемые и фактические результаты, включая любые сообщения об ошибках

Ожидается: развертывание в Firebase и предоставление веб-приложению доступа к правильным ресурсам (конечным точкам API, настройкам базы данных) в зависимости от среды (dev, test, prod).


person user10664542    schedule 12.09.2019    source источник
comment
Я не уверен, что понимаю ваш вопрос. Firebase Hosting не запускает код вашего узла. Он просто обслуживает статический контент или прокси для Cloud Functions или Cloud Run.   -  person Doug Stevenson    schedule 12.09.2019
comment
Трудно найти информацию... Вы пытались установить метку в конфигурации хостинга. с ключом = APP_ENV и значением = ваш env. Я нашел это только в REST API. . Но метки обычно используются для отчета о выставлении счетов. Вы не можете найти место, где установить env var?   -  person guillaume blaquiere    schedule 13.09.2019
comment
Когда код запускается, я хочу, чтобы он выбрал из файла конфигурации правильный раздел для своей конфигурации времени выполнения. Различные разделы файла конфигурации: «dev», «test», «prod». Пожалуйста, прочтите: github.com/lorenwest/node-config, чтобы понять, что я пытаюсь сделать. Для корпоративных проектов очень характерно иметь разные среды выполнения: «dev», «test», «prod» одного и того же кода, но разные настройки, например, каждый экземпляр среды выполнения также имеет отдельные: «dev», «test». и конечная точка API "prod" с ключами доступа "dev", "test" и "prod", все разные. Компренде?   -  person user10664542    schedule 17.09.2019


Ответы (1)


Я столкнулся с похожей проблемой.
Я использовал NODE_CONFIG_ENV вместо NODE_CONFIG.

//for production
process.env.NODE_CONFIG_ENV = "default";

//for development
process.env.NODE_CONFIG_ENV = "production";

Ссылки:
[1]https://github.com/lorenwest/node-config/wiki/Environment-Variables

person Sanyam Jain    schedule 11.10.2019