다음을 통해 공유


캐시에 저장

적용 대상: 모든 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;
  }"
 />

자세한 내용은 정책 식컨텍스트 변수를 참조하세요.

정책 작업에 대한 자세한 내용은 다음을 참조하세요.