<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
캐시된 값이 런타임 시 작성되는 방식을 구성합니다.
캐시 채우기 정책은 단기 캐시에서 항목을 작성하도록 설계되었습니다. 이 정책은 캐시 조회 정책(캐시 항목 읽기용) 및 캐시 무효화 정책(항목 무효화용)과 함께 사용됩니다.
백엔드 리소스의 응답을 캐싱하려면 응답 캐시 정책을 참조하세요.
요소 참조
다음은 이 정책에서 구성할 수 있는 요소입니다.
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
<PopulateCache> 속성
다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.
속성 | 설명 | 기본값 | 현재 상태 |
---|---|---|---|
name |
정책의 내부 이름입니다. 원하는 경우 |
해당 없음 | 필수 |
continueOnError |
정책이 실패할 경우 오류가 반환되도록 하려면 정책이 실패해도 흐름 실행이 계속되도록 하려면 |
거짓 | 선택사항 |
enabled |
정책을 시행하려면 정책을 중지하려면 |
참 | 선택사항 |
async |
이 속성은 지원이 중단되었습니다. |
거짓 | 지원 중단됨 |
<DisplayName> 요소
name
속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.
<DisplayName>Policy Display Name</DisplayName>
기본값 |
해당 없음 이 요소를 생략하면 정책 |
---|---|
현재 상태 | 선택사항 |
유형 | 문자열 |
<CacheKey> 요소
캐시에 저장된 데이터 조각을 가리키는 고유한 포인터를 구성합니다.
캐시 키의 크기는 2KB로 제한됩니다.
<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> 요소
메시지를 저장할 캐시를 지정합니다.
이 정책 및 해당 LookupCache 및 InvalidateCache 정책이 포함된 공유 캐시를 사용하는 경우 이 요소를 완전히 생략하세요.
<CacheResource>cache_to_use</CacheResource>
기본값: |
해당 사항 없음 |
Presence: |
선택사항 |
유형: |
문자열 |
캐시 구성에 대한 자세한 내용은 환경 만들기 및 수정을 참조하세요. 캐시에 저장합니다.
<CacheKey>/<KeyFragment> 요소
캐시 키에 포함되어야 하는 값을 지정하여 요청을 캐시된 응답과 일치시키기 위한 네임스페이스를 만듭니다.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
기본값: |
해당 사항 없음 |
Presence: |
선택사항 |
유형: |
해당 없음 |
키(제공하는 정적 이름) 또는 값(변수를 참조하여 설정하는 동적 항목)일 수 있습니다. 지정된 모든 결합 프래그먼트(및 프리픽스 포함)가 연결되어 캐시 키를 만듭니다.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
<KeyFragment>
요소를 <Prefix>
및 <Scope>
와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.
속성
속성 | 유형 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
참조 | 문자열 | 아니요 |
값을 가져올 변수입니다. 이 요소에 리터럴 값이 포함된 경우에는 사용하면 안 됩니다. |
<CacheKey>/<Prefix> 요소
캐시 키 프리픽스로 사용할 값을 지정합니다.
<Prefix>prefix_string</Prefix>
기본값: |
해당 사항 없음 |
Presence: |
선택사항 |
유형: |
문자열 |
<Scope>
- 열거된 값 대신 고유한 값을 지정하려면 <Scope>
대신 이 값을 사용합니다. 정의된 경우 <Prefix>
는 캐시에 작성된 항목의 캐시 키 값을 앞에 추가합니다. <Prefix>
요소 값은 <Scope>
요소 값을 재정의합니다.
<Prefix>
요소를 <CacheKey>
및 <Scope>
와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.
<ExpirySettings> 요소
캐시 항목이 만료되는 시간을 지정합니다. 이 요소가 있는 경우 <TimeoutInSeconds>
는 <TimeOfDay>
및 <ExpiryDate>
를 모두 재정의합니다.
<ExpirySettings> <!-- use exactly one of the following child elements --> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
기본값: |
해당 사항 없음 |
Presence: |
필수 |
유형: |
해당 사항 없음 |
<ExpirySettings>
하위 요소
하위 요소를 하나만 사용해야 합니다. 다음 표에서는 <ExpirySettings>
의 하위 요소에 대한 설명을 제공합니다.
하위 요소 | 설명 |
---|---|
<TimeoutInSeconds> |
캐시 항목이 만료되는 소요 시간(초)입니다. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> 이 요소는 현재 지원 중단된 |
<ExpiryDate> |
캐시 항목이 만료되는 날짜를 지정합니다. 양식에 문자열을 지정합니다.
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> 지정한 날짜가 과거인 경우 정책이 적용됩니다. 캐시된 항목의 최대 TTL(수명)입니다. 최대 기간은 30일입니다. |
<TimeOfDay> |
캐시 항목이 만료되어야 하는 시간을 지정합니다.
<ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
가능한 하위 요소 중 하나만 지정해야 합니다. 여러 요소를 지정하는 경우
우선순위는 TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
입니다.
위의 각 <ExpirySettings>
하위 요소와 함께
하위 요소에 선택적 ref
속성을 지정하면 정책이
이름이 지정된 컨텍스트 변수에서 만료 값을 검색합니다. 변수가 정의되지 않은 경우
정책은 하위 요소의 리터럴 텍스트 값을 사용합니다.
<Scope> 요소
<CacheKey>
요소에서 <Prefix>
요소가 제공되지 않은 경우 캐시 키의 프리픽스를 구성하는 데 사용되는 열거형입니다.
<Scope>scope_enumeration</Scope>
기본값: |
"Exclusive" |
Presence: |
선택사항 |
유형: |
문자열 |
<Scope>
설정은 <Scope>
값에 따라 앞에 오는 캐시 키를 결정합니다. 예를 들어 범위를 Exclusive
로 설정하면 캐시 키는 다음과 같은 형식을 취합니다.
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [serializedCacheKey ]
<CacheKey>
에 <Prefix>
요소가 있는 경우 <Scope>
요소 값을 대체합니다. 유효한 값에는 아래의 열거값이 포함됩니다.
<Scope>
요소를 <CacheKey>
및 <Prefix>
와 함께 사용합니다. 자세한 내용은 캐시 키 작업을 참조하세요.
사용 가능한 값
Global |
환경에 배포된 모든 API 프록시에서 캐시 키를 공유합니다. 캐시 키는 orgName__ envName __ 형식으로 앞에 추가됩니다.
|
Application |
API 프록시 이름은 프리픽스로 사용됩니다. 캐시 키는 orgName__envName__apiProxyName 형식으로 앞에 추가됩니다. |
Proxy |
ProxyEndpoint 구성이 프리픽스로 사용됩니다. 캐시 키는 orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName 형식으로 앞에 추가됩니다. |
Target |
TargetEndpoint 구성이 프리픽스로 사용됩니다. 캐시 키는 orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName 형식으로 앞에 추가됩니다. |
Exclusive |
기본값입니다. 이는 가장 구체적이므로 지정된 캐시 내에서 네임스페이스 충돌 위험을 최소화합니다. 프리픽스는 다음 두 가지 형식 중 하나입니다.
캐시 키는 orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName 형식으로 앞에 추가됩니다. 예를 들어 전체 문자열은 다음과 같습니다. apifactory__test__weatherapi__16__default__apiAccessToken. |
<Source> 요소
캐시에 값을 작성해야 하는 변수를 지정합니다.
<Source>source_variable</Source>
기본값: |
해당 사항 없음 |
Presence: |
필수 |
유형: |
문자열 |
사용 참고사항
이 정책은 범용 캐싱에 사용됩니다. 런타임 시 <PopulateCache>
정책은 <Source>
요소에 지정한 변수의 데이터를 <CacheResource>
요소에 지정된 캐시에 씁니다. <CacheKey>
, <Scope>
, <Prefix>
요소를 사용하여 <LookupCache>
정책에서 값을 검색하는 데 사용할 수 있는 키를 지정할 수 있습니다. <ExpirySettings>
요소를 사용하여 캐시된 값이 만료되는 시기를 구성합니다.
PopulateCache 정책, LookupCache 정책, InvalidateCache 정책을 통한 범용 캐싱은 구성한 캐시 또는 기본적으로 포함된 공유 캐시를 사용합니다. 대부분의 경우 기본 공유 캐시가 니즈를 충족해야 합니다. 이 캐시를 사용하려면 <CacheResource>
요소를 생략하면 됩니다.
캐시 한도: 이름 및 값 크기, 총 캐시 수, 캐시의 항목 수, 만료 등 다양한 캐시 한도가 적용됩니다.
기본 데이터 저장소에 대한 자세한 내용은 캐시 내부를 참조하세요. GCP 콘솔 구성과 자세한 내용은 문서 만들기 및 수정 환경 캐시를 참조하세요.
캐시 암호화 정보
퍼블릭 클라우드의 에지: 캐시는 다음 위치에서만 암호화됩니다. PCI 및 HIPAA 지원 액세스할 수 있습니다 이러한 조직의 암호화는 조직 프로비저닝 중에 구성됩니다.
오류 코드
이 섹션에서는 반환되는 오류 코드, 오류 메시지, 그리고 이 정책이 오류를 트리거할 때 Edge에서 설정하는 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항 및 오류 처리를 참조하세요.
런타임 오류
이러한 오류는 정책이 실행될 때 발생할 수 있습니다.
오류 코드 | HTTP 상태 | 발생 상황 |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | 항목은 캐시할 수 없습니다. 캐시되는 메시지 객체는 직렬화 가능한 클래스의 인스턴스가 아닙니다. |
배포 오류
이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.
오류 이름 | 원인 | 해결 |
---|---|---|
InvalidCacheResourceReference |
이 오류는 PopulateCache 정책의 <CacheResource> 요소가 API 프록시가 배포되는 환경에 존재하지 않는 이름으로 설정되는 경우에 발생합니다. |
build |
CacheNotFound |
<CacheResource> 요소에 지정된 캐시가 존재하지 않습니다. |
build |
오류 변수
이러한 변수는 이 정책으로 오류가 트리거될 때 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.
변수 | 위치 | 예 |
---|---|---|
fault.name="fault_name" |
fault_name은 위의 런타임 오류 표에 나열된 오류 이름입니다. 오류 이름은 오류 코드의 마지막 부분입니다. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name은 오류를 발생시킨 정책의 사용자 지정 이름입니다. | populatecache.POP-CACHE-1.failed = true |
오류 응답 예시
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
오류 규칙 예시
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>