Поддержка API в Статические веб-приложения Azure с помощью Функции Azure

Интерфейсные веб-приложения часто вызывают внутренние API для данных и служб. По умолчанию Статические веб-приложения Azure предоставляет встроенные конечные точки API без сервера через Функции Azure.

API Функции Azure в Статические веб-приложения доступны в двух возможных конфигурациях в зависимости от плана hosting:

  • Managed functions: По умолчанию API статического веб-приложения представляют собой Функции Azure, управляемые и развертываемые Статические веб-приложения Azure, с некоторыми ограничениями.

  • Предоставьте ваши собственные функции: При необходимости можно предоставить существующее приложение Функции Azure любого типа плана, которое включает все возможности Функции Azure. При такой конфигурации вы несете ответственность за управление отдельным развертыванием для приложения Functions.

В следующей таблице сравниваются различия между использованием управляемых и существующих функций.

Функция Управляемые функции Используйте собственные функции
Доступ к Функции Azure триггерам и привязкам Только HTTP Все
Поддерживается Функции Azure runtimes1 Смотрите поддерживаемые языки и среды выполнения. Все
Поддерживаемые планы размещения Функции Azure hosting Потребление Потребление
Премиум
Выделенные
Встроенная безопасность с прямым доступом к данным пользователя о проверке подлинности и авторизации на основе ролей
Интеграция маршрутизации, которая обеспечивает безопасный /api доступ к маршруту для веб-приложения, не требуя пользовательских правил CORS.
модель программирования Устойчивые функции
Управляемая идентификация
Управление токенами аутентификации и авторизации Служба приложений Azure
Функции API, доступные за пределами Статические веб-приложения Azure
ссылки Key Vault

1 . Чтобы указать версию среды выполнения в управляемых функциях, добавьте файл конфигурации в интерфейсное приложение и задайте apiRuntime свойство. Поддержка распространяется на политику поддержки среды выполнения языка Функции Azure.

Параметры API для Статические веб-приложения включают следующие службы Azure:

Дополнительные сведения см. в обзоре API.

Настройка

Конечные точки API доступны веб-приложению через api маршрут.

Управляемые функции Используйте свои собственные функции
/api Пока маршрут исправлен, у вас есть контроль над расположением папки исходного кода приложения управляемых функций. Это расположение можно изменить, отредактировав YAML-файл рабочего процесса, расположенного в папке .github/workflows репозитория. Запросы к маршруту /api отправляются в существующее приложение Функции Azure.

Устранение неполадок и журналы

Журналы доступны только при добавлении Application Insights.

Управляемые функции Используйте свои собственные функции
Включите ведение журнала, активировав Application Insights в своем статическом веб-приложении. Включите ведение журнала, включив Application Insights в приложении Функции Azure.

Ограничения

Помимо API Статические веб-приложения constraints, следующие ограничения также применимы к API Функции Azure:

Управляемые функции Используйте свои собственные функции
  • Триггеры и привязки ограничены HTTP.
  • Приложение Функции Azure должно находиться в Node.js 12. Node.js 14, Node.js 16, Node.js 18, Node.js 20 (предварительная версия), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.0, Python 3.8, Python 3.9 или Python 3.10.
  • Некоторые параметры приложения управляются службой, поэтому среда выполнения резервирует следующие префиксы.
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Некоторые теги приложений используются внутренне службой. Поэтому зарезервированы следующие теги:
    • AccountId, EnvironmentId, FunctionAppId.
  • Вы несете ответственность за управление развертыванием приложения "Функции".

Следующие шаги