Как реструктурировать проект функций Azure, развернутый с помощью статических веб-приложений Azure?

#azure #deployment #azure-functions #github-actions #azure-static-web-app

#azure #развертывание #azure-функции #github-действия #azure-static-web-app

Вопрос:

Я работаю над API, который использует функции Azure, которые развертываются в статическом веб-приложении Azure с помощью https://github.com/Azure/static-web-apps-deploy . Я хочу реструктурировать свою часть api, чтобы отделить исходные файлы от файлов сборки, но мои функции развертываются неправильно.

В настоящее время сторона API имеет следующую структуру каталогов:

 /api/node_modules  
/api/dist  
/api/coverage  
/api/* (a mix of src and config json files)  
 

Я пытаюсь создать папку / api / src и переместить в нее все функции Azure, чтобы в папке api теперь было только:

 /api/node_modules  
/api/dist  
/api/coverage  
/api/src  (contains azure functions)  
/api/*.json (config json files only - e.g. package.json, typedoc.json, .eslintrc.json, etc)  
 

Как только я добавил папку src, функции больше не развертывались правильно. Веб-приложение будет 404 пытаться найти маршруты.

Вот что я пробовал до сих пор:

  • Обновление функции.json scriptFile для указания на сценарий с помощью /src/MyFunction/index.js
  • Обновление tsconfig include для включения файлов src
  • Обновление действия github для указания на api / src вместо просто api
  • Убедитесь, что файл host.json находится в каталоге src

Пример репозитория концепции можно найти по адресу https://github.com/sinedied/azure-swag . Для моего репозитория у меня есть больше функций Azure, но это та же концепция. Я бы попытался переместить функцию цитирования в папку src, а затем развернуть функции.

Любая помощь приветствуется!

Редактировать: после попытки воспроизвести проблему я не смог воспроизвести ее в репозитории azure-swag, просто переместив функции. Я полагаю, что это может быть связано с тем, что мой репозиторий находится в typescript. Я смог воспроизвести репозиторий в следующем репозитории: https://github.com/avenmia/test-deployment

Функции Azure в настоящее время 503 при запросе, но когда я добавляю файл сценария и указываю на index.js что касается функции, то она дает мне 404 для моего первоначального проекта.

Ответ №1:

Приведенные ниже основные настройки позволяют мне работать нормально:

введите описание изображения здесь

У меня та же структура, что и у вашего статического веб-приложения. Кажется, с моей стороны проблем нет.

введите описание изображения здесь

Пожалуйста, убедитесь, что у вас есть полная структура api/src .

Структура приложения функций:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node?tabs=v2#folder-structure

Комментарии:

1. Я добавил правку после попытки воспроизвести проблему с репозиторием azure-swag. Я смог воспроизвести проблему, которую я вижу в репозитории avenmia, если вы можете взглянуть. Я также смог заставить это работать