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

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

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

Внимание

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

Снимок экрана: политики кэша в службе

В этой статье вы:

  • Добавьте кэширование ответов для вашего API.
  • Убедитесь, что кэширование работает

Примечание.

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

Предварительные требования

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

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

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

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

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

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

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

  6. В разделе "Входящий трафик" выберите <значок /> :

    Снимок экрана: API-интерфейсы управления 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>
    <rate-limit calls="10" renewal-period="60" />
    

    Примечание.

    Добавьте политику ограничения скорости (или политику ограничения скорости по ключу ) после поиска кэша, чтобы ограничить количество вызовов и предотвратить перегрузку серверной службы в случае, если кэш недоступен.

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

    <cache-store duration="20" />
    

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

  9. Нажмите кнопку "Сохранить".

Совет

Если вы используете внешний кэш, как описано в разделе "Использование внешнего кэша, совместимого с Redis" в службе управления API Azure, может потребоваться указать caching-type атрибут политик кэширования. Дополнительные сведения см. в политиках кэширования управления API .

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

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

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