Служба приложений nest js to azure windows - настройки web.config - PullRequest
0 голосов
/ 15 апреля 2020

Я пытался развернуть мое гнездо js API на azure со вчерашнего дня и не удалось. Сначала я пытался преобразовать его в linux план облачного сервиса и смог развернуть его по сравнению с кодом; в журналах azure было показано, что приложение было успешно запущено, но оно не вернуло никаких данных. от моих конечных точек и после некоторого копания я продолжал видеть некоторые отказы контейнера. Я попытался устранить неполадки, которые некоторое время назад решили, что вместо этого я попытаюсь настроить его в службе приложений windows.

Следуя этому руководству: https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs, я переместил свое гнездовое приложение js в службу приложений azure на windows и снова оно не сработало. Я снял репозиторий в этой статье, чтобы сравнить его с моим, и у них есть точка входа в web.config для приложения nodejs, указывающая на индекс. js. Этот индекс. js не существует в моем приложении nest js, и я провел некоторое исследование и обнаружил, что точка входа для приложения nest js после того, как все скомпилировано, является главной. js. Есть еще одно отличие в этом примере проекта и моего приложения nest js в том, что основной файл nest js приложения. js, кажется, находится в папке dist, а не в root пути wwwroot ,

В моем гнезде js приложение явно не содержало web.config из коробки, поэтому я создал его, используя в качестве примера репозиторий hello world. Я обновил путь iisnode к dist / main. js и путь перезаписи к тому же пути / файлу, поскольку это единственное, что я могу думать.

Единственный другой подстановочный знак - версия узла номер, который я изменяю в azure для настройки приложения WEBSITE_NODE_DEFAULT_VERSION ... Я не уверен, что это должно быть для моего гнезда js приложения. Моя текущая локальная версия - 12.16.2, но когда я меняю версию на azure, она не работает.

Я не уверен, что еще можно попробовать здесь - я бы неплохо попытался go вернуться к linux, если бы мог решить проблему с контейнером docker, но это казалось тупиком , Я думаю, что мне, скорее всего, повезет, если я продолжу идти по маршруту windows, если я смогу просто заставить эту вещь web.config / version работать.

is main. js в папке dist, где я должен указывать мой web.config? Есть ли максимальное ограничение версии на azure? Могу ли я что-то пропустить?

РЕДАКТИРОВАТЬ: После включения потоковых журналов - я вижу это исключение

SyntaxError: Использование const в строгом режиме. в Module._compile (module. js: 434: 25) в Object .. js (module. js: 464: 10) в Module.load (module. js: 353: 31) в Function ._load (module. js: 311: 12) в Module.require (module. js: 359: 17) по требованию (module. js: 375: 17) в Object. (D: \ Program Files (x86) \ iisnode \ interceptor. js: 459: 1) в Module._compile (модуль. js: 446: 26) в Object .. js (module. js : 464: 10) в Module.load (module. js: 353: 31)

после некоторого поиска в Google, я обнаружил, что исключение было распространено в более старых версиях узла (<4) , Я намного выше этой версии, и у меня azure установлена ​​версия, намного превосходящая эту. </p>

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я разобрался с помощью друга. Выполнение этого в azure cli позволило разобраться с помощью настройки linux.

az webapp config set --resource-group myResourceGroup --name myAppServiceName --startup-file "npm run start:prod"
0 голосов
/ 16 апреля 2020

Я прочитал ваши два поста о развертывании гнезда js.

Теперь я думаю, какую бы платформу вы ни использовали, она не будет успешной. Потому что azure поддерживает нас базовую c среду для веб-приложений. Хотя ваше приложение основано на nodejs, когда вы запускаете npm run start, вы на самом деле запускаете nest start. Среда basi c не должна поддерживать npm i -g @ nestjs/cli. Поэтому я предлагаю вам использовать docker для создания образа, а затем развернуть.

...