고급 정책 만들기

완료됨

이 단원에서는 다음 API Management 정책에 대한 참조를 제공합니다.

  • 흐름 제어 - 부울 식의 평가 결과에 따라 정책 문을 조건부로 적용합니다.
  • 요청 전달 - 백 엔드 서비스에 요청을 전달합니다.
  • 동시성 제한 - 지정된 정책이 한 번에 지정된 요청 수를 초과해서 실행하지 못하게 합니다.
  • 이벤트 허브에 기록 - 로거 엔터티가 정의한 이벤트 허브에 지정된 형식으로 메시지를 보냅니다.
  • 모의 응답 - 파이프라인 실행을 중단하고 호출자에게 직접 모의 응답을 반환합니다.
  • 다시 시도 - 조건이 충족될 때까지 포함된 정책 문을 실행하도록 다시 시도합니다. 지정된 시간 간격으로 지정된 다시 시도 횟수까지 실행이 반복됩니다.

제어 흐름

choose 정책은 프로그래밍 언어의 스위치 구문이나 if-then-else처럼 부울 식 평가 결과에 따라 관련 요소에 포함된 정책 문을 적용합니다.

<choose>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <otherwise>
        <!— one or more policy statements to be applied if none of the above conditions are true  -->
</otherwise>
</choose>

제어 흐름 정책에는 <when/> 요소가 하나 이상 포함되어 있어야 합니다. <otherwise/> 요소는 선택적입니다. 정책 내에 표시되는 순서대로 <when/> 요소의 조건이 평가됩니다. 첫 번째 <when/> 요소에 포함된 정책 문은 조건 특성이 true일 때 적용됩니다. <otherwise/> 요소(있는 경우)에 포함된 정책은 <when/> 요소의 모든 조건 특성이 false인 경우 적용됩니다.

요청 전달

forward-request 정책은 들어오는 요청을 요청 컨텍스트에 지정된 백 엔드 서비스로 전달합니다. 백 엔드 서비스 URL이 API 설정에 지정되며 백 엔드 서비스 설정 정책을 사용하여 변경할 수 있습니다.

이 정책을 제거하면 요청이 백 엔드 서비스로 전달되지 않습니다. 아웃바운드 섹션의 정책은 인바운드 섹션의 정책이 성공적으로 완료되는 즉시 평가됩니다.

<forward-request timeout="time in seconds" follow-redirects="true | false"/>

동시성 제한

limit-concurrency 정책은 포함된 정책이 한 번에 지정된 개수보다 많은 요청을 실행할 수 없도록 차단합니다. 요청 수가 초과되면 새로운 요청은 429 요청이 너무 많음 상태 코드와 함께 즉시 실패합니다.

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

이벤트 허브에 기록

log-to-eventhub 정책은 로거 엔터티가 정의한 이벤트 허브에 지정된 형식으로 메시지를 보냅니다. 이름에서 알 수 있듯이 이 정책은 온라인 또는 오프라인 분석을 위해 선택한 요청 또는 응답 컨텍스트 정보를 저장하는 데 사용됩니다.

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

모의 응답

이름에서 알 수 있듯이 mock-response는 모의 API 및 작업에 사용됩니다. 정상적인 파이프라인 실행을 중단하고 호출자에게 모의 응답을 반환합니다. 정책에서 항상 최고 충실도의 응답을 반환하려고 시도합니다. 가능한 경우 응답 콘텐츠 예제를 선호합니다. 스키마가 제공되고 예제가 제공되지 않은 경우 스키마에서 샘플 응답을 생성합니다. 예 또는 스키마를 찾을 수 없으면 콘텐츠가 없는 응답이 반환됩니다.

<mock-response status-code="code" content-type="media type"/>

재시도

retry 정책은 자식 정책을 한 번 실행한 후 다시 시도 conditionfalse가 되거나 다시 시도 count를 모두 사용할 때까지 실행을 다시 시도합니다.

<retry
    condition="boolean expression or literal"
    count="number of retry attempts"
    interval="retry interval in seconds"
    max-interval="maximum retry interval in seconds"
    delta="retry interval delta in seconds"
    first-fast-retry="boolean expression or literal">
        <!-- One or more child policies. No restrictions -->
</retry>

반환 응답

return-response 정책은 파이프라인 실행을 중단하고 호출자에게 기본 또는 사용자 지정된 응답을 반환합니다. 기본 응답은 본문 없는 200 OK입니다. 컨텍스트 변수나 정책 문을 통해 사용자 지정 응답을 지정할 수 있습니다. 둘 다 제공되면 정책 문은 발신자에게 반환되기 전에 컨텍스트 변수를 수정합니다.

<return-response response-variable-name="existing context variable">
  <set-header/>
  <set-body/>
  <set-status/>
</return-response>

다른 리소스