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

Управление API Azure — это служба, которая позволяет создавать современный шлюз API для существующих внутренних служб.

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

Служба управления API Azure может быть связана с несколькими статическими веб-приложениями одновременно. Продукт управления API создается для каждого связанного статического веб-приложения. Все API, добавленные в продукт, доступны для связанного статического веб-приложения.

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

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

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

Замечание

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

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

Предпосылки

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

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

Пример

Рассмотрим существующий экземпляр службы управления API Azure, предоставляющий конечную точку с помощью следующего расположения.

https://my-api-management-instance.azure-api.net/api/getProducts

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

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

Оба URL-адреса указывают на одну конечную точку API. Конечная точка в экземпляре управления API должна содержать префикс /api, так как Static Web Apps сопоставляют запросы, сделанные к /api, и проксируют весь путь к связанному ресурсу.

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

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

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

  3. Найдите среду, с которой нужно связать службу управления API. Выберите Ссылка.

  4. В типе ресурсов серверной части выберите "Управление API".

  5. В подписке выберите подписку, содержащую службу управления API Azure, которую вы хотите связать.

  6. В имени ресурса выберите службу управления API Azure.

  7. Выберите Ссылка.

Это важно

По завершении процесса связывания запросы на маршруты, начинающиеся с /api, проксируются в службу управления API Azure. Однако по умолчанию API не раскрываются. См. статью "Настройка API для получения запросов", чтобы настроить продукт управления API и разрешить использование необходимых API.

Настройка API для получения запросов

Служба Azure API Management имеет функцию продуктов, которая определяет, как предоставляются API. В рамках процесса связывания служба управления API настроена с продуктом, имеющим имя Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked).

Чтобы сделать API доступными для связанного статического веб-приложения, добавьте их в продукт.

  1. В экземпляре управления API на портале выберите вкладку "Продукты ".

  2. Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked) Выберите продукт.

  3. Нажмите кнопку +Добавить API.

  4. Выберите API, которые вы хотите предоставить из статических веб-приложений, а затем щелкните ссылку Select .

Снимок экрана вкладки управления продуктами API на портале Azure, показывающий, как добавить API в продукт, созданный для ресурса Static Web Apps.

Процесс связывания также автоматически применяет следующую конфигурацию к службе управления API:

  • Продукт, связанный с связанным статическим веб-приложением, настроен на требование подписки.
  • Подписка управления API под названием Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> создается и связывается с продуктом с тем же именем.
  • В продукт добавляется политика входящей валидации JWT, чтобы разрешить только запросы, содержащие допустимый токен доступа из связанного статического веб-приложения.
  • Связанное статическое веб-приложение настроено так, чтобы включать первичный ключ подписки и действительный токен доступа при перенаправлении запросов к службе управления API.

Это важно

Изменение политики validate-jwt или повторное создание первичного ключа подписки предотвращает прокси-запросы статического веб-приложения в службу управления API. Не изменяйте или не удаляйте подписку или продукт, связанный со статическим веб-приложением.

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

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

  2. Найдите среду, связь с которой вы хотите отменить, и выберите имя службы управления API.

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

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

Замечание

Продукт управления API и подписка, связанная с связанным статическим веб-приложением, не удаляется автоматически. Их можно удалить из службы управления API.

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

Если API не связаны с продуктом управления API, созданным для ресурса статических веб-приложений, доступ к маршруту /api в статическом веб-приложении возвращает следующую ошибку из управления API.

{
  "statusCode": 401,
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}

Чтобы устранить эту ошибку, настройте API, которые необходимо предоставить в статических веб-приложениях для продукта, созданного для него, как описано в разделе "Настройка API для получения запросов ".

Дальнейшие шаги