InvalidateCache 정책

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

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

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

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

요소 참조

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

<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

정책의 내부 이름입니다. 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 속성 값이 사용됩니다.

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

<CacheContext>/<APIProxyName> 요소

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

<APIProxyName>application_that_added_the_entry</APIProxyName>

속성

속성 설명 기본 계정 현재 상태 유형
참조 애플리케이션 이름이 있는 변수 N/A 선택사항 문자열

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

기본값:

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>와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.

<CacheResource> 요소

메시지를 저장할 캐시를 지정합니다.

이 정책 및 해당 PopulateCache 및 LookupCache 정책이 포함된 공유 캐시를 사용하는 경우 이 요소를 완전히 생략하세요.

<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>와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.

특성

속성 설명 기본 계정 현재 상태 유형
참조 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. N/A 선택사항 문자열

<CacheKey>/<Prefix> 요소

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

<Prefix>prefix_string</Prefix>

기본값:

N/A

현재 상태:

선택사항

유형:

문자열

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

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

<CacheContext>/<ProxyName> 요소

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

기본값:

N/A

현재 상태:

선택사항

유형:

문자열

특성

속성 설명 기본 계정 현재 상태 유형
참조 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. N/A 선택사항 문자열

<PurgeChildEntries> 요소

이 정책에 구성된 <KeyFragment> 요소에서 설정된 값을 공유하는 캐시 항목을 삭제하는 true. 캐시 키의 다른 부분(예: <Prefix> 요소)의 값은 고려되지 않습니다.

<KeyFragment> 요소를 지정해야 합니다. 지정되지 않은 경우 <PurgeChildEntries>를 true로 설정하면 캐시의 모든 요소가 삭제될 수 있습니다.

동일한 키 프래그먼트 값의 모든 캐시 요소를 무효화하면 관련 요소 여러 개를 한 번에 삭제할 수 있습니다.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

기본값:

false

현재 상태:

선택사항

유형:

불리언

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

<CacheContext>/<TargetName> 요소

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

기본값:

N/A

현재 상태:

선택사항

유형:

문자열

특성

속성 설명 기본 계정 현재 상태 유형
참조 값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. N/A 선택사항 문자열

사용 참고사항

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

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

오류 코드

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

오류 코드 프리픽스

N/A

런타임 오류

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

배포 오류

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

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

오류 변수

해당 없음

오류 응답 예시

N/A