Добавление собственных функций в Статические веб-приложения 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
и прокси-серверам, весь путь к связанному ресурсу.
Привязка существующего приложения Функций Azure
Удаление управляемых функций из ресурса Статические веб-приложения (при наличии)
Прежде чем связать существующее приложение Функций, сначала необходимо настроить конфигурацию статического веб-приложения, чтобы удалить управляемые функции, если у вас есть какие-либо.
- Задайте в качестве значения
api_location
пустую строку (""
) в файле конфигурации рабочего процесса.
Связывание приложения Функции Azure с ресурсом Статические веб-приложения
Откройте экземпляр статических веб-приложений на портале Azure.
В меню Параметры выберите API.
В рабочей строке выберите "Ссылка", чтобы открыть новое окно серверной части ссылки.
Введите следующие параметры.
Параметр Значение Тип ресурса серверной части Выберите приложение-функцию. Подписка Выберите имя подписки Azure. Имя ресурса Выберите имя приложения Функции Azure. Внутренний слот Выберите имя слота для функции Azure. Выберите Ссылка.
Теперь приложение Функции Azure сопоставляется с маршрутом /api
статического веб-приложения.
Важно!
Перед привязкой существующего приложения Функций обязательно задайте в качестве значения api_location
пустую строку (""
) в файле конфигурации рабочего процесса. Кроме того, вызовы предполагают, что внешнее приложение-функция сохраняет префикс маршрута по умолчанию api
. Многие приложения удаляют этот префикс в host.json. Убедитесь, что префикс находится на месте в конфигурации, в противном случае вызов завершается ошибкой.
Развертывание
Вы должны настроить рабочий процесс развертывания для вашего приложения Функций Azure.
Отмена связи приложения Функции Azure
Отмена связи приложения функций из Статические веб-приложения
Чтобы отменить связь приложения-функции со статического веб-приложения, выполните следующие действия.
В портал Azure перейдите в статическое веб-приложение.
Выберите API в меню навигации.
Найдите среду, которую требуется отменить связь, и выберите имя приложения-функции.
Выберите "Отменить связь".
После завершения процесса отмены связи запросы к маршрутам, начинающимся с/api
, больше не используются в приложении Функции Azure.
Примечание.
Чтобы предотвратить случайное предоставление приложения-функции анонимному трафику, поставщик удостоверений, созданный процессом связывания, не удаляется автоматически. Вы можете удалить поставщика удостоверений с именем Статические веб-приложения Azure (связанная) из параметров проверки подлинности приложения-функции.
Удаление проверки подлинности из ресурса Функции Azure
Чтобы разрешить приложению Функции Azure получать анонимный трафик, выполните следующие действия, чтобы удалить поставщика удостоверений:
В портал Azure перейдите к ресурсу Функции Azure.
Выберите проверку подлинности в меню навигации .
В списке поставщиков удостоверений удалите поставщик удостоверений, связанный с ресурсом Статические веб-приложения.
Выберите "Удалить проверку подлинности", чтобы удалить проверку подлинности и разрешить анонимный трафик к ресурсу Функции Azure.
Теперь приложение-функция сможет получать анонимный трафик.
Ограничения безопасности
Проверка подлинности и авторизация: если политики проверки подлинности и авторизации в существующем приложении Функций еще не настроены, статическое веб-приложение имеет эксклюзивный доступ к API. Чтобы сделать приложение Функций доступным для других приложений, добавьте другой поставщик удостоверений или измените параметры безопасности так, чтобы разрешить доступ без проверки подлинности.
Примечание.
Если вы включите проверку подлинности и авторизацию в приложении связанных функций, он должен использовать приложение Azure проверки подлинности и авторизации поставщика авторизации 2.
Требуемый открытый доступ: существующее приложение Функций не должно применять указанные ниже конфигурации безопасности.
- Ограничение IP-адреса приложения Функций.
- Ограничение трафика по приватному каналу или через конечные точки службы.
Ключи доступа к функции: если функции требуется ключ доступа, необходимо предоставить ключ с вызовами из статического приложения в API.
Ограничения
- Для одного статического веб-приложения доступно только одно приложение Функций Azure.
- Значение
api_location
в конфигурации рабочего процесса должно быть пустой строкой. - Не поддерживается в средах запроса на вытягивание Статические веб-приложения.
- Приложение Функций Azure может отвечать на различные триггеры, но статическое веб-приложение может обращаться к функциям только через конечные точки HTTP.