Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Настраивает способ получения кэшированных значений во время выполнения.
Данная политика предназначена для использования в краткосрочном кэшировании общего назначения. Она используется совместно с политикой заполнения кэша (для записи записей) и политикой аннулирования кэша (для аннулирования записей).
Для кэширования ответов от серверных ресурсов см. политику кэширования ответов .
Ссылка на элемент
Ниже перечислены элементы, которые можно настроить в рамках этой политики.
<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
<DisplayName>Lookup Cache 1</DisplayName>
<Properties/>
<CacheKey>
<Prefix/>
<KeyFragment ref=""/>
</CacheKey>
<!-- Omit this element if you're using the included shared cache. -->
<CacheResource/>
<CacheLookupTimeoutInSeconds/>
<Scope>Exclusive</Scope>
<AssignTo>flowVar</AssignTo>
</LookupCache> По умолчанию включен общий кэш. Чтобы использовать общий кэш, опустите элемент <CacheResource> в конфигурации этой политики.
Дополнительную информацию о базовом хранилище данных см. в разделе «Внутреннее устройство кэша» . Дополнительную информацию о настройке кэша см. в разделе «Создание и редактирование кэша среды» .
атрибуты <LookupCache>
В следующей таблице описаны атрибуты, общие для всех родительских элементов политики:
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
name | Внутреннее имя политики. Значение атрибута При необходимости используйте элемент | Н/Д | Необходимый |
continueOnError | Установите значение Установите значение | ЛОЖЬ | Необязательный |
enabled | Установите значение Установите значение | истинный | Необязательный |
async | Этот атрибут устарел. | ЛОЖЬ | Устарело |
Элемент <DisplayName>
Используйте в дополнение к атрибуту name , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.
<DisplayName>Policy Display Name</DisplayName>
| По умолчанию | Н/Д Если вы опустите этот элемент, будет использовано значение атрибута |
|---|---|
| Присутствие | Необязательный |
| Тип | Нить |
элемент <AssignTo>
Указывает переменную, которой присваивается запись из кэша после её извлечения. Переменная должна быть доступна для записи. Если поиск в кэше не выдаёт значения, переменная не будет установлена.
<AssignTo>variable_to_receive_cached_value</AssignTo>
По умолчанию: | Н/Д |
Присутствие: | Необходимый |
Тип: | Нить |
элемент <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> . Дополнительную информацию см. в разделе «Работа с ключами кэша» .
элемент <CacheLookupTimeoutInSeconds>
Указывает количество секунд, по истечении которых неудачный поиск в кэше будет считаться промахом кэша. В этом случае поток данных возобновляется по пути, предшествующему промаху кэша.
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
По умолчанию: | 30 |
Присутствие: | Необязательный |
Тип: | Целое число |
элемент <CacheResource>
Указывает кэш, в котором должны храниться сообщения.
Этот элемент следует полностью опустить, если данная политика (а также соответствующие политики PopulateCache и InvalidateCache) использует включенный в нее общий кэш.
<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> . Дополнительную информацию см. в разделе «Работа с ключами кэша» .
<Область> элемент
Перечисление, используемое для построения префикса для ключа кэша, если элемент <Prefix> не указан в элементе <CacheKey> .
<Scope>scope_enumeration</Scope>
По умолчанию: | «Эксклюзив» |
Присутствие: | Необязательный |
Тип: | Нить |
Параметр <Scope> определяет ключ кэша, который добавляется в начало в соответствии со значением <Scope> . Например, ключ кэша будет иметь следующий вид, если для параметра scope установлено Exclusive : orgName__envName__ application Name__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__proxyEndpointName . |
Target | В качестве префикса используется конфигурация TargetEndpoint. Ключ кэша добавляется в префикс в формате orgName__envName__ application Name__targetEndpointName . |
Exclusive | По умолчанию. Это наиболее специфический вариант, поэтому он представляет минимальный риск конфликтов имен в рамках данного кэша. Префикс может иметь одну из двух форм:
Ключ кэша добавляется в начало файла в формате orgName__envName__ application Name__proxyNameITargetName Например, полная строка может выглядеть так: apifactory__test__weatherapi__16__default__apiAccessToken |
Примечания по использованию
Используйте эту политику для кэширования общего назначения. Во время выполнения политика LookupCache извлекает значение из кэша, присваивая его переменной, указанной в элементе AssignTo (если значение не получено, переменная не будет установлена). Она ищет значение на основе ключа кэша, созданного в конфигурации, которая объединяет элементы CacheKey и Scope. Другими словами, чтобы получить определенное значение, добавленное в кэш политикой PopulateCache, ваша политика LookupCache должна содержать элементы, связанные с ключом кэша, настроенные таким же образом, как и политика PopulateCache.
Для кэширования общего назначения с использованием политик Populate Cache , LookupCache и InvalidateCache применяется либо кэш, который вы настраиваете, либо общий кэш, включенный по умолчанию. В большинстве случаев базовый общий кэш должен удовлетворять вашим потребностям. Чтобы использовать кэш по умолчанию, просто опустите элемент <CacheResource> .
Дополнительные сведения о настройке кэша см. в разделе «Создание и редактирование кэша среды» . Дополнительные сведения о базовом хранилище данных см. в разделе «Внутренние механизмы кэша» .
Переменные потока
Переменные потока можно использовать для настройки динамического поведения политик и потоков во время выполнения на основе HTTP-заголовков, содержимого сообщений или контекста, доступного в потоке. Дополнительную информацию о переменных потока см. в справочнике по переменным .
После настройки поведения кэша, определенного в политике LookupCache, становятся доступны следующие предопределенные переменные Flow.
| Переменные | Тип | Разрешение | Описание |
|---|---|---|---|
| lookupcache.{policy-name}.cachename | Нить | Только для чтения | Возвращает имя кэша, использованное в политике. |
| lookupcache.{policy-name}.cachekey | Нить | Только для чтения | Возвращает использованный ключ. |
| lookupcache.{policy-name}.cachehit | Логический | Только для чтения | Возвращает true, если политика обнаружила значение для указанного ключа кэша. |
| lookupcache.{policy-name}.assignto | Нить | Только для чтения | Возвращает переменную, которой назначен кэш. |
коды ошибок
В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Префикс кода ошибки
Н/Д
Ошибки выполнения
Эта политика не вызывает никаких ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCacheResourceReference | Эта ошибка возникает, если для элемента <CacheResource> установлено имя, которое не существует в среде, где развертывается прокси-сервер API. | build |
InvalidTimeout | Если для элемента <CacheLookupTimeoutInSeconds> установлено отрицательное число, развертывание прокси-сервера API завершается неудачей. | build |
CacheNotFound | Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений. | build |
Переменные неисправности
Н/Д
Пример ответа об ошибке
Н/Д