Как запустить узел v10.x в функциях Azure на хосте Linux? - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над небольшой функцией для автоматизации обновления моего сертификата в функциях Azure.

Функция работает в моем локальном эмуляторе (в vscode), работающем под узлом v10.15.3.

Однако, когда он запущен в режиме онлайн, генерируется исключение из синтаксиса асинхронного итератора, когда включается содержащий его файл

Stack: /home/site/wwwroot/node_modules/acme-dns-01-cloudflare/index.js:125
                for await(const zone of consumePages(pagination =>

Насколько я понимаю, этот синтаксис был принят в версиях узла 10. Икс. Поэтому я добавил консольную строку вывода: console.log(process.versions); и получил ответ, что функция работает на узле версии 8.16.1. Поэтому я проверил настройку приложения WEBSITE_NODE_DEFAULT_VERSION и подтвердил, что она установлена ​​на 10.14.1. Я также проверил это с другой рекомендуемой настройкой ~ 10 и получил тот же результат.

К сожалению, в документации трудно найти такую ​​специфическую проблему, но я еще не сталкивался с чем-то, что утверждает, что Linux работаетограничены узлом v8.x

В качестве дополнительной информации для FUNCTIONS_WORKER_RUNTIME задано значение "узел", а версия времени выполнения - 2.0.12733.0 (~ 2)

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

На момент написания этой проблемы на github освещалась проблема https://github.com/Azure/azure-functions-host/issues/4948. Различные версии узлов просто недоступны в планах потребления Linux, независимо от настройки в WEBSITE_NODE_DEFAULT_VERSION.

Надеемся, что их новые соглашения будутбыть на месте в ближайшее время для всех, кто имеет эту проблему.

На данный момент вы можете переключиться на план потребления Windows, или, возможно, переключиться на план обслуживания (я не проверял это, так как это своего рода побеждаетточка функций)

0 голосов
/ 23 октября 2019

Обратитесь к этим Issue1 и Issue2 , похоже, WEBSITE_NODE_DEFAULT_VERSION не будет работать для функции Linux, необходимо установить свойство LinuxFxVersion, чтобы выбрать версию узла.

Следуйте моим инструкциям, чтобы изменить его.

1.Зайдите в свое приложение функций на портале и откройте Resource Explorer . Вы найдете LinuxFxVersion is node:2.0-node8-appservice.

enter image description here

2.Выберите веб-страницу под узлом конфигурации, затем нажмите кнопку Изменить. Найдите linuxFxVersion и измените значение на NODE|10.14, после этого нажмите кнопку PUT, чтобы обновить настройку. Затем перезапустите вашу функцию, проверьте версию узла, которую вы найдете 10.14.

enter image description here

enter image description here

...