Развертывание функций Firebase с помощью node-config - PullRequest
0 голосов
/ 28 ноября 2018

Я создал функцию firebase, которая использует эту библиотеку конфигурации https://www.npmjs.com/package/config. Когда я запускаю ее локально, все работает.

Когда я пытаюсь развернуть, firebase deploy --only functions каталог конфигурации и связанные файлы впапка функций, похоже, не загружается.Моя функция не работает, когда она пытается прочитать значения конфигурации.

Как я могу сказать firebase развернуть мой каталог конфигурации вместе с функциями?

Обновление

Структура папки

  • функции
    • index.js
    • package.json
    • test
      • index.test.json
    • node_modules
      • ...
    • config
      • default.json

выходная информация пожарной базы ниже

root@fc19e6bca144:/appfiles# firebase deploy --only functions   

=== Deploying to 'familybank'...

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...

Error: Error occurred while parsing your function triggers.

Error: Configuration property "dialogflow.intents.welcome_user" is not defined
    at Config.get (/appfiles/functions/node_modules/config/lib/config.js:203:11)
    at Object.<anonymous> (/appfiles/functions/index.js:39:19)
    at Module._compile (internal/modules/cjs/loader.js:707:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
    at Module.load (internal/modules/cjs/loader.js:605:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
    at Function.Module._load (internal/modules/cjs/loader.js:536:3)
    at Module.require (internal/modules/cjs/loader.js:643:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:15:15
    at Object.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:53:3)
    at Module._compile (internal/modules/cjs/loader.js:707:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
    at Module.load (internal/modules/cjs/loader.js:605:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:544:12)

dialogflow.intents.welcome_user предоставляется в config/defaults.json, поэтому я предполагаю, что он не загружался.

1 Ответ

0 голосов
/ 30 ноября 2018

Большинство подробностей находится в этом выпуске: https://github.com/firebase/firebase-tools/issues/1046 (и соответствующий запрос на извлечение).

В этом случае node-config искала каталог config вне каталога, гдескрипт был изначально запущен, а не относительно импортируемого скрипта.Хотя node-config предоставляет способ переопределить это с помощью переменной среды, https://github.com/lorenwest/node-config/wiki/Environment-Variables, интерфейс командной строки firebase отбросил переменные среды, поэтому он все равно не смог ее найти.

Исправление, как виднов запросе pull - захватить текущие переменные среды и передать их процессу fork ed, чтобы они были доступны для config-узла.

...