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

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

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

  • Управляемые функции: по умолчанию API статического веб-приложения — это приложение функций Azure, управляемое и разворачиваемое статическими веб-приложениями Azure, связанными с некоторыми ограничениями.

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

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

Функция Управляемые функции Использование собственных функций
Доступ к триггерам и привязкам Функции Azure Только HTTP Все
Поддерживаемыесреды выполнения Функции Azure 1 Node.js 12
Node.js 14.
Node.js 16
Node.js 18
.NET Core 3.1.
.NET 6.0
.NET 7.0
Python 3.8
Python 3.9
Python 3.10
Все
Поддерживаемые планы размещения функций Azure Потребление Потребление
Premium
Выделенные
Встроенная безопасность с прямым доступом к данным пользователя о проверке подлинности и авторизации на основе ролей
Интеграция маршрутизации, которая обеспечивает безопасный /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 Статические веб-приложения, следующие ограничения также применимы к Функции Azure API:

Управляемые функции Использование собственных функций
  • Триггеры и привязки ограничены HTTP.
  • Приложение Функции Azure должно находиться в Node.js 12, Node.js 14, Node.js 16, Node.js 18 (общедоступная предварительная версия), .NET Core 3.1, .NET 6.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.
  • Вы несете ответственность за управление развертыванием приложения "Функции".

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