Поделиться через


Добавление кэширования для повышения производительности в службе управления API Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Standard v2 | Премиум | Премиум версии 2

Операции в управлении API можно настроить для кэширования ответов. Кэширование ответов может значительно снизить задержку для вызовов API и серверной нагрузки для поставщиков API.

Внимание

Встроенный кэш является непостоянным и совместно используется всеми единицами одного региона в той же службе Управления API. Независимо от типа используемого кэша (внутренний или внешний), если операции, связанные с кэшем, не могут подключиться к кэшу из-за его изменчивости или по любой другой причине, вызов API, использующий связанную с кэшем операцию, не вызывает ошибку, и операция кэша завершается успешно. При выполнении операций чтения возвращается значение null в ответ на выражение вызова политики. Код политики должен быть разработан, чтобы гарантировать, что в кэше есть резервный механизм для извлечения данных, не найденных в кэше. Дополнительные сведения о кэшировании см. в статьях Политики кэширования в службе "Управление API" и Пользовательское кэширование в службе "Управление API Azure".

Политики кэширования

Из этого руководства вы узнаете, как выполнять такие задачи:

  • добавление кэширования ответов для API;
  • проверка кэширования в действии.

Примечание.

Внутренний кэш не предусмотрен на уровне Потребление службы управления API Azure. Вместо этого вы можете использовать внешний кэш Redis для Azure. Можно также настроить внешний кэш на других уровнях служб Управление API.

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

Для работы с этим руководством:

Добавление политик кэширования

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

  1. Войдите на портал Azure.

  2. Перейдите к экземпляру службы управления API.

  3. Выберите API-интерфейсы> в меню слева.

  4. Выберите API, для которого требуется настроить кэширование.

  5. В верхней части экрана выберите вкладку Конструктор.

  6. В разделе Обработка входящего трафика щелкните значок </>. Снимок экрана: редактор политики Управление API на портале.

  7. В элементе inbound добавьте следующую политику:

    <cache-lookup vary-by-developer="false" vary-by-developer-groups="false">
        <vary-by-header>Accept</vary-by-header>
        <vary-by-header>Accept-Charset</vary-by-header>
        <vary-by-header>Authorization</vary-by-header>
    </cache-lookup>
    
  8. В элементе outbound добавьте следующую политику:

    <cache-store duration="20" />
    

    В этой политике длительность определяет интервал истечения срока действия кэшированных ответов. В этом примере интервал составляет 20 секунд.

Совет

Если вы используете внешний кэш, как описано в статье Use an external Azure Cache for Redis in Azure API Management (Использование внешнего кэша Azure для Redis в службе Azure "Управление API"), возможно, потребуется указать атрибут caching-type политик кэширования. Дополнительные сведения см. в статье Политики кэширования в службе управления API.

Вызов операции и проверка кэширования

Чтобы просмотреть кэширование в действии, вызовите операцию с портала.

  1. В портал Azure перейдите к Управление API экземпляру.
  2. Выберите API-интерфейсы> в меню слева.
  3. Выберите API, в который вы добавили политики кэширования.
  4. Выберите операцию для тестирования.
  5. Выберите вкладку "Тест" в правом верхнем меню.
  6. Выберите "Трассировка" два или три раза в быстром последовательности.
  7. В разделе HTTP-ответ выберите вкладку "Трассировка ".
  8. Перейдите к разделу "Входящие " и прокрутите страницу политики cache-lookup . На следующем снимке экрана появится сообщение, аналогичное приведенному на следующем снимке экрана: Снимок экрана: поиск кэша при тестировании API на портале.