Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Настраивает способ очистки кэшированных значений из кэша.
Данная политика предназначена для использования в краткосрочном кэшировании общего назначения. Она используется совместно с политикой заполнения кэша (для записи записей) и политикой поиска в кэше (для чтения записей кэша).
Для кэширования ответов от серверных ресурсов см. политику кэширования ответов .
Ссылка на элемент
Ниже перечислены элементы, которые можно настроить в рамках этой политики.
<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>
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие | Тип |
|---|---|---|---|---|
| ссылка | Переменная с названием приложения. | Н/Д | Необязательный | Нить |
элемент <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 являются обязательными, если префикс CacheKey (то есть пользовательский префикс) не используется для очистки записей кэша, добавленных другим API-прокси.
элемент <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> . Дополнительную информацию см. в разделе «Работа с ключами кэша» .
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие | Тип |
|---|---|---|---|---|
| ссылка | Переменная, из которой нужно получить значение. Не следует использовать, если этот элемент содержит буквальное значение. | Н/Д | Необязательный | Нить |
элемент <CacheKey>/<Prefix>
Указывает значение, которое будет использоваться в качестве префикса ключа кэша.
<Prefix>prefix_string</Prefix>
По умолчанию: | Н/Д |
Присутствие: | Необязательный |
Тип: | Нить |
Используйте это значение вместо <Scope> если хотите указать собственное значение, а не значение, перечисленное в <Scope> . Если определено, <Prefix> добавляет значение ключа кэша перед записями, записываемыми в кэш. Значение элемента <Prefix> переопределяет значение элемента <Scope> .
Элемент <Prefix> используется совместно с <CacheKey> и <Scope> . Дополнительную информацию см. в разделе «Работа с ключами кэша» .
элемент <CacheContext>/<ProxyName>
Указывает имя прокси-сервера, для которого были кэшированы данные.
<ProxyName>proxy_for_which_data_was_cached</ProxyName>
По умолчанию: | Н/Д |
Присутствие: | Необязательный |
Тип: | Нить |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие | Тип |
|---|---|---|---|---|
| ссылка | Переменная, из которой нужно получить значение. Не следует использовать, если этот элемент содержит буквальное значение. | Н/Д | Необязательный | Нить |
<PurgeChildEntries> элемент
true используется для очистки записей кэша, имеющих общее значение, заданное элементом <KeyFragment> , настроенным для этой политики. Значения в других частях ключа кэша, например, в элементах <Prefix> , не учитываются.
Обратите внимание, что элемент <KeyFragment> должен быть указан. В противном случае установка значения true для <PurgeChildEntries> может привести к очистке всех записей в кэше.
Аннулирование всех записей кэша с одинаковым значением фрагмента ключа может быть полезным способом одновременной очистки нескольких связанных записей.
<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>
По умолчанию: | ЛОЖЬ |
Присутствие: | Необязательный |
Тип: | Логический |
<Область> элемент
Перечисление, используемое для построения префикса для ключа кэша, если элемент <Prefix> не указан в элементе <CacheKey> .
<Scope>scope_enumeration</Scope>
По умолчанию: | «Эксклюзив» |
Присутствие: | Необязательный |
Тип: | Нить |
Параметр <Scope> определяет ключ кэша, который добавляется в начало в соответствии со значением <Scope> . Например, ключ кэша будет иметь следующий вид, если для параметра scope установлено Exclusive :
orgName__envName__ application Name__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].
Если элемент <Prefix> присутствует в <CacheKey> , он заменяет значение элемента <Scope> . Допустимые значения включают перечисленные ниже варианты.
Элемент <Scope> используется совместно с <CacheKey> и <Prefix> . Дополнительную информацию см. в разделе «Работа с ключами кэша» .
Допустимые значения
| Значение масштаба | Описание |
|---|---|
Global | Ключ кэша используется всеми API-прокси, развернутыми в среде. Ключ кэша добавляется в начало файла в формате orgName __ envName __. Если вы определяете запись |
Application | В качестве префикса используется имя API-прокси. Ключ кэша добавляется в префикс в формате orgName__envName__ application Name . |
Proxy | В качестве префикса используется конфигурация ProxyEndpoint. Ключ кэша добавляется в префикс в формате orgName__envName__ application Name__deployedRevisionNumber__proxyEndpointName . |
Target | В качестве префикса используется конфигурация TargetEndpoint. Ключ кэша добавляется в начало файла в формате orgName__envName__ application Name__deployedRevisionNumber__targetEndpointName . |
Exclusive | По умолчанию. Это наиболее специфический вариант, поэтому он представляет минимальный риск конфликтов имен в рамках данного кэша. Префикс может иметь одну из двух форм:
Ключ кэша добавляется в начало файла в формате orgName__envName__ application Name__deployedRevisionNumber__proxyNameITargetName Например, полная строка может выглядеть так: apifactory__test__weatherapi__16__default__apiAccessToken |
элемент <CacheContext>/<TargetName>
Указывает имя целевой конечной точки, для которой были кэшированы данные.
<TargetName>endpoint_for_which_data_was_cached</TargetName>
По умолчанию: | Н/Д |
Присутствие: | Необязательный |
Тип: | Нить |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие | Тип |
|---|---|---|---|---|
| ссылка | Переменная, из которой нужно получить значение. Не следует использовать, если этот элемент содержит буквальное значение. | Н/Д | Необязательный | Нить |
Примечания по использованию
Для кэширования общего назначения с использованием политик Populate Cache , LookupCache и InvalidateCache применяется либо кэш, который вы настраиваете, либо общий кэш, включенный по умолчанию. В большинстве случаев базовый общий кэш должен удовлетворять вашим потребностям. Чтобы использовать этот кэш, просто опустите элемент <CacheResource> .
Дополнительные сведения о настройке кэша см. в разделе «Создание и редактирование кэша среды» . Дополнительные сведения о базовом хранилище данных см. в разделе «Внутренние механизмы кэша» .
коды ошибок
В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Префикс кода ошибки
Н/Д
Ошибки выполнения
Эта политика не вызывает никаких ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCacheResourceReference | Эта ошибка возникает, если элементу <CacheResource> в политике InvalidateCache присвоено имя, не существующее в среде, где развертывается прокси-сервер API. | build |
CacheNotFound | Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений. | build |
Переменные неисправности
Н/Д
Пример ответа об ошибке
Н/Д