캐시에 저장
적용 대상: 모든 API Management 계층
cache-store
정책은 지정된 캐시 설정에 따라 응답을 캐시합니다. 이 정책은 응답 콘텐츠가 일정 기간 동안 정적 상태인 경우 적용해야 합니다. 응답 캐싱은 백 엔드 웹 서버에 부과된 대역폭 및 처리 요구 사항을 줄이며 API 소비자가 인지하는 대기 시간을 줄여 줍니다.
참고 항목
이 정책에는 해당하는 캐시에서 가져오기 정책이 있어야 합니다.
Important
기본 제공 캐시는 휘발성이며 동일한 API Management 서비스의 동일한 지역에 있는 모든 유닛에서 공유됩니다.
참고 항목
정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. 이 정책을 구성하는 데 도움이 되도록 포털은 양식 기반의 안내형 편집기를 제공합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.
정책 문
<cache-store duration="seconds" cache-response="true | false" />
특성
특성 | 설명 | 필수 항목 | 기본값 |
---|---|---|---|
duration | 캐시된 항목의 TTL(Time-to-Live)로 초 단위로 지정합니다. 정책 식이 허용됩니다. | 예 | 해당 없음 |
cache-response | 현재 HTTP 응답을 캐시하려면 true 로 설정합니다. 이 특성을 생략하면 상태 코드가 200 OK 인 HTTP 응답만 캐시됩니다. 정책 식이 허용됩니다. |
아니요 | false |
사용
사용법 참고 사항
- API Management는 HTTP GET 요청에 대한 응답만 캐시합니다.
- 이 정책은 정책 섹션에서 한 번만 사용할 수 있습니다.
예제
해당 cache-lookup 정책의 예
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
<vary-by-query-parameter>version</vary-by-query-parameter>
</cache-lookup>
</inbound>
<outbound>
<cache-store duration="seconds" />
<base />
</outbound>
</policies>
정책 식을 사용하는 예제
이 예제에서는 지원 서비스의 Cache-Control
지시문에 지정된 대로 백 엔드 서비스의 응답 캐싱과 일치하는 API Management 응답 캐싱 기간을 구성하는 방법을 보여 줍니다.
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
<cache-store duration="@{
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
}"
/>
자세한 내용은 정책 식 및 컨텍스트 변수를 참조하세요.
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- Azure API Management 정책 도구 키트
- Azure의 Microsoft Copilot을 사용하는 작성자 정책