LookupCache 정책

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

런타임 시 캐시된 값을 검색하는 방법을 구성합니다.

이 정책은 범용 단기 캐싱에 사용됩니다. 이는 캐시 채우기 정책(항목 작성용) 및 캐시 무효화 정책(항목 무효화용)과 함께 사용됩니다.

백엔드 리소스의 응답을 캐싱하려면 응답 캐시 정책을 참조하세요.

요소 참조

다음은 이 정책에서 구성할 수 있는 요소입니다.

<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

정책의 내부 이름입니다. name 속성의 값에는 문자, 숫자, 공백, 하이픈, 밑줄, 마침표가 포함될 수 있습니다. 이 값은 255자(영문 기준)를 초과할 수 없습니다.

원하는 경우 <DisplayName> 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름을 사용하여 정책에 라벨을 지정합니다.

N/A 필수
continueOnError

정책이 실패할 경우 오류가 반환되도록 하려면 false로 설정합니다. 이는 대부분의 정책에서 예상되는 동작입니다.

정책이 실패해도 흐름 실행이 계속되도록 하려면 true로 설정합니다.

false 선택사항
enabled

정책을 시행하려면 true로 설정합니다.

정책을 중지하려면 false로 설정합니다. 정책이 흐름에 연결되어 있어도 정책이 시행되지 않습니다.

true 선택사항
async

이 속성은 지원이 중단되었습니다.

false 지원 중단됨

<DisplayName> 요소

name 속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.

<DisplayName>Policy Display Name</DisplayName>
기본 계정

N/A

이 요소를 생략하면 정책 name 속성 값이 사용됩니다.

현재 상태 선택사항
유형 문자열

<AssignTo> 요소

캐시 항목이 캐시에서 검색된 후에 할당되는 변수를 지정합니다. 변수는 쓰기 가능해야 합니다. 캐시 조회에서 값을 검색하지 않으면 변수가 설정되지 않습니다.

<AssignTo>variable_to_receive_cached_value</AssignTo>

기본값:

N/A

현재 상태:

필수

유형:

문자열

<CacheKey> 요소

캐시에 저장된 데이터 조각을 가리키는 고유한 포인터를 구성합니다.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

기본값:

N/A

현재 상태:

필수

유형:

N/A

<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>

기본값:

N/A

현재 상태:

선택사항

유형:

문자열

캐시 구성에 대한 자세한 내용은 환경 캐시 만들기 및 수정을 참조하세요.

<CacheKey>/<KeyFragment> 요소

캐시 키에 포함되어야 하는 값을 지정하여 요청을 캐시된 응답과 일치시키기 위한 네임스페이스를 만듭니다.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

기본값:

N/A

현재 상태:

선택사항

유형:

N/A

키(제공하는 정적 이름) 또는 값(변수를 참조하여 설정하는 동적 항목)일 수 있습니다. 지정된 모든 결합 프래그먼트(및 프리픽스 포함)가 연결되어 캐시 키를 만듭니다.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

<KeyFragment> 요소를 <Prefix><Scope>와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.

특성

속성 유형 기본 계정 필수 설명
참조 string No

값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다.

<CacheKey>/<Prefix> 요소

캐시 키 프리픽스로 사용할 값을 지정합니다.

<Prefix>prefix_string</Prefix>

기본값:

N/A

현재 상태:

선택사항

유형:

문자열

<Scope> - 열거된 값 대신 고유한 값을 지정하려면 <Scope> 대신 이 값을 사용합니다. 정의된 경우 <Prefix>는 캐시에 작성된 항목의 캐시 키 값을 앞에 추가합니다. <Prefix> 요소 값은 <Scope> 요소 값을 재정의합니다.

<Prefix> 요소를 <CacheKey><Scope>와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.

<Scope> 요소

<CacheKey> 요소에서 <Prefix> 요소가 제공되지 않은 경우 캐시 키의 프리픽스를 구성하는 데 사용되는 열거형입니다.

<Scope>scope_enumeration</Scope>

기본값:

"Exclusive"

현재 상태:

선택사항

유형:

문자열

<Scope> 설정은 <Scope> 값에 따라 앞에 오는 캐시 키를 결정합니다. 예를 들어 범위가 Exclusive로 설정된 경우 캐시 키는 다음 형식을 사용합니다. orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

<CacheKey><Prefix> 요소가 있는 경우 <Scope> 요소 값을 대체합니다. 유효한 값에는 아래의 열거값이 포함됩니다.

<Scope> 요소를 <CacheKey><Prefix>와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.

사용 가능한 값

Global

환경에 배포된 모든 API 프록시에서 캐시 키를 공유합니다. 캐시 키는 orgName__ envName __ 형식으로 앞에 추가됩니다.

<KeyFragment> apiAccessToken 및 <Global> 범위로 <CacheKey> 항목을 정의하면 각 항목은 orgName__envName__apiAccessToken으로 저장되고, 액세스 토큰의 직렬화된 값이 뒤에 옵니다. 'apifactory'라는 조직에 있는 'test'라는 환경에 배포된 API 프록시의 경우 액세스 토큰은 캐시 키 apifactory__test__apiAccessToken 아래에 저장됩니다.

Application

API 프록시 이름은 프리픽스로 사용됩니다.

캐시 키는 orgName__envName__applicationName 형식으로 앞에 추가됩니다.

Proxy

ProxyEndpoint 구성이 프리픽스로 사용됩니다.

캐시 키는 orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName 형식으로 앞에 추가됩니다.

Target

TargetEndpoint 구성이 프리픽스로 사용됩니다.

캐시 키는 orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName 형식으로 앞에 추가됩니다.

Exclusive

기본값. 이는 가장 구체적이므로 지정된 캐시 내에서 네임스페이스 충돌 위험을 최소화합니다.

프리픽스는 다음 두 가지 형식 중 하나입니다.

  • 정책이 ProxyEndpoint 흐름에 연결된 경우 프리픽스는 ApiProxyName_ProxyEndpointName 형식입니다.
  • 정책이 TargetEndpoint에 연결된 경우 프리픽스는 ApiProxyName_TargetName 형식입니다.

캐시 키는 orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName 형식으로 앞에 추가됩니다.

예를 들어 전체 문자열은 다음과 같습니다.

apifactory__test__weatherapi__16__default__apiAccessToken
.

사용 참고사항

이 정책은 범용 캐싱에 사용됩니다. 런타임 시 LookupCache 정책은 캐시에서 값을 검색하여 AssignTo 요소로 지정한 변수에 값을 할당합니다(값이 검색되지 않으면 변수가 설정되지 않음). CacheKey 및 Scope 요소를 조합하는 구성을 통해 생성된 캐시 키를 기반으로 값을 찾습니다. 즉, PopulateCache 정책으로 캐시에 추가된 특정 값을 검색하려면 LookupCache 정책에는 PopulateCache 정책과 동일한 방식으로 구성된 캐시 키 관련 요소가 있어야 합니다.

캐시 채우기 정책, LookupCache 정책 및 InvalidateCache 정책을 사용한 범용 캐싱은 사용자가 구성한 캐시 또는 기본적으로 포함된 공유 캐시를 사용합니다. 대부분의 경우 기본 공유 캐시가 니즈를 충족해야 합니다. 기본 캐시를 사용하려면 <CacheResource> 요소를 생략하기만 하면 됩니다.

캐시 구성에 대한 자세한 내용은 환경 캐시 만들기 및 수정을 참조하세요. 기본 데이터 저장소에 대한 자세한 내용은 캐시 내부를 참조하세요.

흐름 변수

흐름 변수를 사용하면 HTTP 헤더, 메시지 콘텐츠 또는 흐름에서 사용 가능한 컨텍스트를 기준으로 정책 및 흐름의 동적 런타임 동작을 구성할 수 있습니다. 흐름 변수에 관한 자세한 내용은 변수 참조를 확인하세요.

LookupCache 정책에서 정의한 캐시의 동작을 맞춤설정하면 다음 사전 정의된 흐름 변수를 사용할 수 있습니다.

변수 유형 권한 설명
lookupcache.{policy-name}.cachename 문자열 읽기 전용 정책에 사용된 캐시 이름 반환
lookupcache.{policy-name}.cachekey 문자열 읽기 전용 사용된 키 반환
lookupcache.{policy-name}.cachehit 불리언 읽기 전용 정책에서 지정된 캐시 키의 값을 찾은 경우 true입니다.
lookupcache.{policy-name}.assignto 문자열 읽기 전용 캐시가 할당된 변수를 반환합니다.

오류 코드

이 섹션에서는 이 정책이 오류를 트리거할 때 설정되는 오류 메시지 및 흐름 변수에 대해 설명합니다. 이 정보는 프록시에 대한 오류 규칙을 개발하는 중이라면 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

오류 코드 프리픽스

N/A

런타임 오류

이 정책은 런타임 오류를 발생시키지 않습니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 수정
InvalidCacheResourceReference 이 오류는 <CacheResource> 요소의 이름이 API 프록시가 배포되는 환경에 존재하지 않는 이름으로 설정되는 경우에 발생합니다.
InvalidTimeout <CacheLookupTimeoutInSeconds> 요소가 음수로 설정되면 API 프록시 배포가 실패합니다.
CacheNotFound 이 오류는 오류 메시지에 언급된 특정 캐시가 특정 메시지 프로세서 구성요소에 생성되지 않은 경우에 발생합니다.

오류 변수

해당 없음

오류 응답 예시

N/A