ProxyEndpoint 또는 TargetEndpoint 흐름에 정책 연결

Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요.
정보

정책은 흐름에 연결될 때까지 실행되지 않습니다. 단계 구성에서 정책 이름을 지정하여 정책 연결을 만들 수 있습니다.

연결 지점 선택은 API 프록시의 동작에 매우 중요합니다. 예를 들어 할당량 정책을 응답 흐름에 연결하면 요청 메시지가 서비스로 후에 할당량이 적용됩니다. 그렇게 되면 할당량 정책 적용 목적이 무효화될 수 있습니다. 따라서 할당량 정책은 요청 흐름의 처리 단계에 연결해야 합니다.

정책 연결의 형식은 다음과 같습니다.

<Step>
    <Name>{policy_name}</Name>
</Step>

예를 들면 다음과 같습니다.

<Step>
    <Name>QuotaPolicy</Name>
</Step>

ProxyEndpoint 또는 TargetEndpoint 구성의 적절한 요청 또는 응답 흐름 요소에 단계 구성을 추가하여 정책을 흐름에 연결합니다.

요청 또는 응답 흐름에 정책을 연결할 수 있습니다. 요청 및 응답 흐름은 PreFlow 및 PostFlow로 세분화됩니다.

다음 예시는 정책 연결이 없는 최소 ProxyEndpoint 구성을 보여줍니다. (수신)HTTPProxyConnection 및 RouteRule을 정의합니다.

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

API 프록시가 다른 처리를 수행하기 전에 ProxyEndpoint가 할당량 정책을 처리 단계로 시행하도록 이 구성을 수정해야 합니다. 개발자가 할당량을 초과한 경우 추가 요청에 컴퓨팅 리소스를 낭비하지 않아도 됩니다.

이 구성을 적용하려면 다음과 같이 요청 PreFlow에 처리 단계를 연결합니다.

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

경우에 따라 ProxyEndpoint에서 기타 초기 처리 이후에 정책을 실행하는 것이 좋습니다. 예를 들어 PreFlow에서 할당량을 확인한 후에 요청을 JSON에서 XML로 변환하는 등의 다른 처리 집합을 수행하려고 합니다. 이렇게 하려면 PostFlow 요청 경로에 정책을 연결합니다. 다음은 PostFlow 연결 요청의 예시입니다. 이 정책은 PreFlow(및 조건부 흐름)의 모든 정책이 실행된 후 요청 메시지에서 실행됩니다.

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

다음은 PostFlow 연결 샘플 응답입니다. 이 정책은 응답 메시지에서 실행됩니다. ProxyEndpoint 응답 PostFlow는 응답이 요청 클라이언트 앱에 반환되기 전의 최종 처리 단계입니다.

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>