InvalidateCache 정책

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

정책 아이콘

캐시된 값이 캐시에서 삭제되는 방법을 구성합니다.

이 정책은 범용 단기 캐싱에 사용됩니다. PopulateCache 정책 (요소 쓰기용) 및 LookupCache 정책(캐시 요소 읽기용)과 함께 사용됩니다.

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

이 정책은 확장 가능한 정책이며, 이 정책을 사용하면 Apigee 라이선스에 따라 비용 또는 사용률이 영향을 받을 수 있습니다. 정책 유형 및 사용 영향에 대한 자세한 내용은 정책 유형을 참조하세요.

요소 참조

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

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

다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.

속성 설명 기본값 Presence
name

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

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

해당 사항 없음 필수
continueOnError

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

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

false 선택사항
enabled

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

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

true 선택사항
async

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

false 지원 중단됨

<DisplayName> 요소

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

<DisplayName>Policy Display Name</DisplayName>
기본값

해당 사항 없음

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

Presence 선택사항
유형 문자열

<CacheContext>/<APIProxyName> 요소

캐시 항목을 추가한 애플리케이션의 이름을 지정합니다.

<APIProxyName>application_that_added_the_entry</APIProxyName>

속성

속성 설명 기본값 Presence 유형
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를 구성하는 데 사용됩니다. 다른 API 프록시에서 추가한 캐시 항목을 지우는 데 CacheKey 프리픽스(즉, 커스텀 프리픽스)가 사용되지 않는 경우 APIProxyName, ProxyName, TargetName의 값이 필수입니다.

<CacheKey> 요소

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

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

기본값:

해당 사항 없음

Presence:

필수

유형:

해당 사항 없음

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

기본값:

해당 사항 없음

Presence:

선택사항

유형:

문자열

캐시 구성에 대한 자세한 내용은 범용 캐싱을 참조하세요.

<CacheKey>/<KeyFragment> 요소

캐시 키에 포함되어야 하는 값을 지정합니다. ref 속성이나 고정 값을 사용하여 참조 해제할 변수를 지정합니다.

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

기본값:

해당 사항 없음

Presence:

선택사항

유형:

해당 사항 없음

런타임에서 Apigee는 <Scope> 요소 또는 <Prefix> 요소에서 가져온 값을 각 <KeyFragment> 요소의 확인된 값에 연결하여 캐시 키를 만듭니다. 자세한 내용은 캐시 키 작업을 참조하세요.

속성

속성 설명 기본값 Presence 유형
ref 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. 해당 사항 없음 선택사항 문자열

<CacheKey>/<Prefix> 요소

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

<Prefix>prefix_string</Prefix>

기본값:

해당 사항 없음

Presence:

선택사항

유형:

문자열

<Prefix> 요소는 모든 <Scope> 요소를 재정의합니다.

런타임에서 Apigee는 <Scope> 요소 또는 <Prefix> 요소에서 가져온 값을 각 <KeyFragment> 요소의 확인된 값에 연결하여 캐시 키를 만듭니다. 자세한 내용은 캐시 키 작업을 참조하세요.

<CacheContext>/<ProxyName> 요소

데이터가 캐시된 프록시 이름을 지정합니다.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

기본값:

해당 사항 없음

Presence:

선택사항

유형:

문자열

속성

속성 설명 기본값 Presence 유형
ref 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. 해당 사항 없음 선택사항 문자열

<PurgeChildEntries> 요소

true: 이 정책에 구성된 동일한 <Prefix> 값을 공유하는 캐시 항목을 삭제합니다. 이러한 항목을 캐시에 로드한 PopulateCache 정책 인스턴스도 다양한 <KeyFragment> 요소를 사용합니다.

동일한 프리픽스 값의 모든 캐시 항목을 무효화하면 여러 관련 항목을 한 번에 삭제할 수 있습니다.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

기본값:

false

Presence:

선택사항

유형:

불리언

<Scope> 요소

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

<Scope>scope_enumeration</Scope>

기본값:

"Exclusive"

Presence:

선택사항

유형:

문자열

<Scope> 설정은 <Scope> 값에 따라 앞에 오는 캐시 키를 결정합니다. 예를 들어 범위를 Exclusive로 설정하면 캐시 키는 다음과 같은 형식을 취합니다.

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

<CacheKey><Prefix> 요소가 있는 경우 <Scope> 요소 값을 대체합니다. <Scope> 요소의 유효한 값은 아래에 나와 있습니다.

자세한 내용은 캐시 키 작업을 참조하세요.

사용 가능한 값

범위 값 설명
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
.

<CacheContext>/<TargetName> 요소

데이터가 캐시된 대상 엔드포인트의 이름을 지정합니다.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

기본값:

해당 사항 없음

Presence:

선택사항

유형:

문자열

속성

속성 설명 기본값 Presence 유형
ref 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. 해당 사항 없음 선택사항 문자열

사용 참고사항

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

캐시 구성에 대한 자세한 내용은 범용 캐싱을 참조하세요. 기본 데이터 스토어에 대한 자세한 내용은 캐시 내부를 참조하세요.

오류 코드

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

오류 코드 프리픽스

해당 없음

런타임 오류

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

배포 오류

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

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

오류 변수

해당 없음

오류 응답 예시

해당 없음