Добавление собственных функций в Статические веб-приложения Azure

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

В этой статье показано, как связать существующее приложение Функций Azure с ресурсом статических веб-приложений Azure.

Примечание.

Для интеграции с Функции Azure требуется стандартный план Статические веб-приложения.

Интеграция серверной части не поддерживается в средах запросов на вытягивание Статические веб-приложения.

Необходимые компоненты

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

Ресурс Description
Функции Azure Если у вас еще нет одного, выполните действия, описанные в руководстве по началу работы с Функции Azure.
Существующее статическое веб-приложение Если у вас еще нет одного, выполните действия, описанные в руководстве по началу работы , чтобы создать статическое веб-приложение No Framework .

Пример

Рассмотрим существующее приложение Функций Azure, предоставляющее конечную точку через следующее расположение.

https://my-functions-app.azurewebsites.net/api/getProducts

После установки связи вы можете получить доступ к той же конечной точке по пути api из статического веб-приложения, как показано в этом примере URL-адреса.

https://red-sea-123.azurestaticapps.net/api/getProducts

URL-адреса обеих конечных точек указывают на одну и ту же функцию. Конечная точка приложения-функции должна иметь /api префикс, так как Статические веб-приложения соответствует запросам, сделанным /api и прокси-серверам, весь путь к связанному ресурсу.

Удаление управляемых функций из ресурса Статические веб-приложения (при наличии)

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

  1. Задайте в качестве значения api_location пустую строку ("") в файле конфигурации рабочего процесса.
  1. Откройте экземпляр статических веб-приложений на портале Azure.

  2. В меню Параметры выберите API.

  3. В рабочей строке выберите "Ссылка", чтобы открыть новое окно серверной части ссылки.

    Введите следующие параметры.

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

Теперь приложение Функции Azure сопоставляется с маршрутом /api статического веб-приложения.

Важно!

Перед привязкой существующего приложения Функций обязательно задайте в качестве значения api_location пустую строку ("") в файле конфигурации рабочего процесса. Кроме того, вызовы предполагают, что внешнее приложение-функция сохраняет префикс маршрута по умолчанию api . Многие приложения удаляют этот префикс в host.json. Убедитесь, что префикс находится на месте в конфигурации, в противном случае вызов завершается ошибкой.

Развертывание

Вы должны настроить рабочий процесс развертывания для вашего приложения Функций Azure.

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

  1. В портал Azure перейдите в статическое веб-приложение.

  2. Выберите API в меню навигации.

  3. Найдите среду, которую требуется отменить связь, и выберите имя приложения-функции.

  4. Выберите "Отменить связь".

После завершения процесса отмены связи запросы к маршрутам, начинающимся с/api, больше не используются в приложении Функции Azure.

Примечание.

Чтобы предотвратить случайное предоставление приложения-функции анонимному трафику, поставщик удостоверений, созданный процессом связывания, не удаляется автоматически. Вы можете удалить поставщика удостоверений с именем Статические веб-приложения Azure (связанная) из параметров проверки подлинности приложения-функции.

Удаление проверки подлинности из ресурса Функции Azure

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

  1. В портал Azure перейдите к ресурсу Функции Azure.

  2. Выберите проверку подлинности в меню навигации .

  3. В списке поставщиков удостоверений удалите поставщик удостоверений, связанный с ресурсом Статические веб-приложения.

  4. Выберите "Удалить проверку подлинности", чтобы удалить проверку подлинности и разрешить анонимный трафик к ресурсу Функции Azure.

Теперь приложение-функция сможет получать анонимный трафик.

Ограничения безопасности

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

    Примечание.

    Если вы включите проверку подлинности и авторизацию в приложении связанных функций, он должен использовать приложение Azure проверки подлинности и авторизации поставщика авторизации 2.

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

    • Ограничение IP-адреса приложения Функций.
    • Ограничение трафика по приватному каналу или через конечные точки службы.
  • Ключи доступа к функции: если функции требуется ключ доступа, необходимо предоставить ключ с вызовами из статического приложения в API.

Ограничения

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

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