Не удалось загрузить zip-файл проекта Node.js в качестве веб-задания Azure - PullRequest
0 голосов
/ 30 апреля 2019

Пожалуйста, не закрывайте этот вопрос без чтения.

У меня есть обычный проект Node.js с index.js и кучей узловых модулей, одним из которых является azure-storage для загрузки файла. Я сжал его в .zip и пытаюсь загрузить как Azure WebJob .. но он каждый раз терпит неудачу.

Что он делает, так это один пустой каталог внутри моего проекта Node.js. Я написал код, который загружает CSV-файл из хранилища Azure в локальный каталог и преобразует каждую строку в оператор INSERT.

Наткнулся на пару потоков, ссылающихся на одну и ту же проблему. Я попробовал:

  1. npm dedupe - это было предложено где-то, поскольку дерево каталогов node_module может рекурсивно превышать длину, разрешенную в Windows - у меня не сработало
  2. Удалил все внутри node_modules (просто чтобы проверить, действительно ли проблема № 1 для меня) - та же ошибка
  3. Загружен только файл index.js - Работает: /

1 Ответ

0 голосов
/ 02 мая 2019

Что ж, прошло уже два дня, и поскольку я не видел, чтобы кто-нибудь публиковал здесь решение, я должен предположить, что никто еще не сталкивался с этой проблемой, или, может быть, очень мало людей используют Node.js + Azure WebJobs.

Хорошая новость заключается в том, что я обнаружил проблему, и теперь у меня запущен и работает мой WebJob Node.js внутри службы приложений Azure.(И плохая новость в том, что я не смог ничего найти в загруженных мной журналах, не уверен, что что-то пропустил в журналах).

Итак, вот как я это сделал, если кто-то упадет на то же самоеоднажды проблема ...

Во-первых, не используйте index.js.Используйте run.js в качестве точки входа в ваш WebJob, а в файле package.json введите {... "main": "run.js", ...}

Это довольнопросто.

Где я ошибался, я сжимал каталог проекта Node.js в файл .zip, и тут весь ад провалился.Всякий раз, когда я загружал этот ZIP-файл в качестве веб-задания Azure в моей службе приложений. Azure некоторое время пытался запустить его, а затем заканчивал с сообщением об ошибке «не удалось добавить веб-задание».

Решение: попасть в узелКаталог проекта .js и «выбрать все» файлы + каталоги внутри него, а затем сжать выделение.Вместо того, чтобы сжимать каталог проекта Node.js., сожмите его содержимое:)

Затем загрузите сжатый .zip в качестве веб-задания Azure в службу приложений, и он будет работать как чудо!

Некоторыедополнительная информация: Вот так примерно выглядел мой каталог проекта Node.js.

  • _1_my_directory
  • node_modules
  • run.js
  • support-util-1.js
  • support-util-2.js
  • app.config
  • some-other.config
...