Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Настраивает, как кешированные значения должны удаляться из кеша.
Это правило предназначено для краткосрочного кеширования общего назначения. Он используется в сочетании с правилом заполнения кеша (для записи записей) и правилом поиска в кеше (для чтения записей кеша).
Чтобы узнать, как кешировать ответы внутренних ресурсов, ознакомьтесь с правилами кеширования ответов.
Сведения об элементах
Ниже перечислены элементы, которые можно настроить в этом правиле.
<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name"> <DisplayName>Policy Name</DisplayName> <CacheKey> <Prefix>prefix_string</Prefix> <KeyFragment ref="variable_reference"/> <KeyFragment>fragment_string</KeyFragment> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource>cache_to_use</CacheResource> <Scope>scope_enumeration</Scope> <CacheContext> <APIProxyName>application_that_added_the_entry</APIProxyName> <ProxyName>proxy_for_which_data_was_cached</ProxyName> <TargetName>endpoint_for_which_data_was_cached</TargetName> </CacheContext> <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries> </InvalidateCache>
Атрибуты <InvalidateCache>
В следующей таблице описаны атрибуты, общие для всех родительских элементов политики:
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
name | Внутреннее имя политики. Значение атрибута При необходимости используйте элемент | Н/Д | Необходимый |
continueOnError | Установите значение Установите значение | ЛОЖЬ | Необязательный |
enabled | Установите значение Установите значение | истинный | Необязательный |
async | Этот атрибут устарел. | ЛОЖЬ | Устарело |
Элемент <DisplayName>
Используйте в дополнение к атрибуту name , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.
<DisplayName>Policy Display Name</DisplayName>
| По умолчанию | Н/Д Если вы опустите этот элемент, будет использовано значение атрибута |
|---|---|
| Присутствие | Необязательный |
| Тип | Нить |
Элемент <CacheContext>/<APIProxyName>
Указывает название приложения, которое добавило запись в кеш.
<APIProxyName>application_that_added_the_entry</APIProxyName>
Атрибуты
| Атрибут | Описание | По умолчанию | Тип поля | Тип |
|---|---|---|---|---|
| ref | Переменная с названием приложения. | Н/Д | Необязательно | Строка |
Элемент <CacheContext>
Указывает, как создать ключ кеша, если значение элемента Prefix не задано, или как очистить записи кеша, добавленные другим прокси-сервером API.
<CacheContext> <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName> <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName> <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName> </CacheContext>
Используется для создания CacheKey. Значения для APIProxyName, ProxyName и TargetName обязательны, если для очистки записей кеша, добавленных другим прокси-сервером API, не используется префикс CacheKey (то есть пользовательский префикс).
Элемент <CacheKey>
Настраивает уникальный указатель на фрагмент данных, хранящийся в кеше.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Обязательно |
|
Тип: |
Н/Д |
<CacheKey> создает название для каждого фрагмента данных, хранящихся в кеше.
Во время выполнения к значениям <KeyFragment> добавляется значение элемента <Scope> или значение <Prefix>. Например, следующий код приведет к созданию ключа кеша UserToken__apiAccessToken__<value_of_client_id>:
<CacheKey>
<Prefix>UserToken</Prefix>
<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />
</CacheKey>Элемент <CacheKey> используется вместе с элементами <Prefix> и <Scope>. Подробнее о работе с ключами кеша…
Элемент <CacheResource>
Указывает, в каком кеше должны храниться сообщения.
Если это правило (и соответствующие правила PopulateCache и LookupCache) использует встроенный общий кеш, этот элемент можно не указывать.
<CacheResource>cache_to_use</CacheResource>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Необязательно |
|
Тип: |
Строка |
Подробнее о том, как создавать и изменять кеш среды…
Элемент <CacheKey>/<KeyFragment>
Указывает значение, которое должно быть включено в ключ кеша, создавая пространство имен для сопоставления запросов с ответами, хранящимися в кеше.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Необязательно |
|
Тип: |
Н/Д |
Это может быть ключ (статическое название, которое вы задаете) или значение (динамическая запись, заданная с помощью переменной). Все указанные фрагменты (плюс префикс) объединяются в ключ кеша.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
Элемент <KeyFragment> используется вместе с элементами <Prefix> и <Scope>. Подробнее о работе с ключами кеша…
Атрибуты
| Атрибут | Описание | По умолчанию | Тип поля | Тип |
|---|---|---|---|---|
| ref | Переменная, значение которой нужно получить. Не следует использовать, если этот элемент содержит литеральное значение. | Н/Д | Необязательно | Строка |
Элемент <CacheKey>/<Prefix>
Указывает значение, которое будет использоваться в качестве префикса ключа кеша.
<Prefix>prefix_string</Prefix>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Необязательно |
|
Тип: |
Строка |
Используйте это значение вместо <Scope>, если вы хотите указать собственное значение, а не значение, перечисленное в <Scope>. Если задано, <Prefix> добавляет значение ключа кеша для записей, которые сохраняются в кеше. Значение элемента <Prefix> переопределяет значение элемента <Scope>.
Элемент <Prefix> используется вместе с элементами <CacheKey> и <Scope>. Подробнее о работе с ключами кеша…
Элемент <CacheContext>/<ProxyName>
Указывает название прокси-сервера, для которого были кешированы данные.
<ProxyName>proxy_for_which_data_was_cached</ProxyName>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Необязательно |
|
Тип: |
Строка |
Атрибуты
| Атрибут | Описание | По умолчанию | Тип поля | Тип |
|---|---|---|---|---|
| ref | Переменная, значение которой нужно получить. Не следует использовать, если этот элемент содержит литеральное значение. | Н/Д | Необязательно | Строка |
Элемент <PurgeChildEntries>
true для удаления записей кеша, которые имеют значение, заданное элементом <KeyFragment>, настроенным для этого правила. Значения в других частях ключа кеша, например в элементах <Prefix>, не учитываются.
Обратите внимание, что элемент <KeyFragment> должен быть указан. Если это не так, установка значения true для правила <PurgeChildEntries> может привести к удалению всех записей в кеше.
Удаление всех записей кеша с одинаковым фрагментом ключа может быть полезным способом очистки нескольких связанных записей одновременно.
<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>
|
По умолчанию: |
false |
|
Присутствие |
Необязательно |
|
Тип: |
Логическое значение |
Элемент <Scope>
Перечисление, используемое для создания префикса ключа кеша, если в элементе <CacheKey> не указан элемент <Prefix>.
<Scope>scope_enumeration</Scope>
|
По умолчанию: |
"Эксклюзив" |
|
Присутствие |
Необязательно |
|
Тип: |
Строка |
Настройка <Scope> определяет ключ кеша, который добавляется в начало в соответствии со значением <Scope>. Например, если область действия задана как Exclusive, ключ кеша будет иметь следующий вид:
orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].
Если в элементе <CacheKey> присутствует элемент <Prefix>, он имеет приоритет над значением элемента <Scope>. Допустимые значения перечислены ниже.
Элемент <Scope> используется вместе с элементами <CacheKey> и <Prefix>. Подробнее о работе с ключами кеша…
Допустимые значения
| Значение области действия | Описание |
|---|---|
Global |
Ключ кеша используется всеми прокси API, развернутыми в среде. Ключ кеша добавляется в виде orgName __ envName __. Если вы определите запись |
Application |
В качестве префикса используется название прокси-сервера API. Ключ кеша добавляется в виде orgName__envName__applicationName. |
Proxy |
В качестве префикса используется конфигурация ProxyEndpoint. Ключ кеша добавляется в начале в следующем формате:orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName. |
Target |
В качестве префикса используется конфигурация TargetEndpoint. Ключ кеша, добавленный в начале в формате orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName . |
Exclusive |
По умолчанию. Это наиболее специфичный вариант, поэтому риск конфликта пространств имен в кеше минимален. Префикс может быть двух видов:
Ключ кеша, добавленный в виде orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName Например, полная строка может выглядеть так: apifactory__test__weatherapi__16__default__apiAccessToken |
Элемент <CacheContext>/<TargetName>
Указывает название целевой конечной точки, для которой данные были сохранены в кеше.
<TargetName>endpoint_for_which_data_was_cached</TargetName>
|
По умолчанию: |
Н/Д |
|
Присутствие |
Необязательно |
|
Тип: |
Строка |
Атрибуты
| Атрибут | Описание | По умолчанию | Тип поля | Тип |
|---|---|---|---|---|
| ref | Переменная, значение которой нужно получить. Не следует использовать, если этот элемент содержит литеральное значение. | Н/Д | Необязательно | Строка |
Примечания
Кеширование общего назначения с помощью правила Populate Cache, правила LookupCache и правила InvalidateCache использует кеш, который вы настраиваете, или общий кеш, включенный по умолчанию. В большинстве случаев вам подойдет общий кеш. Чтобы использовать этот кеш, просто не указывайте элемент <CacheResource>.
Подробнее о том, как создавать и изменять кеш среды… Подробнее о внутреннем хранилище данных…
Коды ошибок
В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Префикс кода ошибки
Н/Д
Ошибки выполнения
Эта политика не вызывает никаких ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCacheResourceReference | Эта ошибка возникает, если элементу <CacheResource> в политике InvalidateCache присвоено имя, не существующее в среде, где развертывается прокси-сервер API. | build |
CacheNotFound | Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений. | build |
Переменные неисправности
Н/Д
Пример ответа об ошибке
Н/Д