Сохранение в кэше
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Политика cache-store
помещает в кэш ответы в соответствии с заданными настройками кэша. Эту политику можно применять в тех случаях, когда содержимое ответа остается неизменным в течение определенного интервала времени. Кэширование ответов уменьшает требования к пропускной способности и вычислительной мощности, накладываемые на внутренний веб-сервер, а также снижает время задержки для потребителей API.
Примечание.
Одновременно с этой политикой должна быть определена соответствующая политика получения из кэша.
Внимание
Встроенный кэш является непостоянным и совместно используется всеми единицами одного региона в той же службе Управления API.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Чтобы помочь вам настроить эту политику, портал предоставляет интерактивный редактор на основе форм. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<cache-store duration="seconds" cache-response="true | false" />
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
duration | Срок жизни кэшированных записей (в секундах). Допустимы выражения политики. | Да | Н/П |
cache-response | Установите для true кэширования текущего HTTP-ответа. Если атрибут опущен, кэшируются только HTTP-ответы с кодом 200 OK состояния. Допустимы выражения политики. |
No | false |
Использование
- Разделы политики: outbound.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, потребление, локальное размещение, рабочая область
Примечания об использовании
- Управление API кэширует только ответы на HTTP-запросы GET.
- Эту политику можно использовать только один раз в разделе политики.
Примеры
Пример с соответствующей политикой поиска кэша
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
<vary-by-query-parameter>version</vary-by-query-parameter>
</cache-lookup>
</inbound>
<outbound>
<cache-store duration="seconds" />
<base />
</outbound>
</policies>
Пример с использованием выражений политики
В этом примере показано, как настроить в службе управления API период хранения ответов в кэше, соответствующий длительности кэширования ответа в серверной службе, которая задается директивой Cache-Control
.
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
<cache-store duration="@{
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
}"
/>
Чтобы узнать больше, см. статью API Management policy expressions (Выражения политики управления API) и раздел Context variable (Переменная контекста).
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure