Поддержка 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.
  • За управление развертыванием приложения функций отвечаете вы.

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