Прикрепление политики к потоку ProxyEndpoint или TargetEndpoint

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Политики не выполняются, пока они не прикреплены к потоку. Вы можете создать вложение политики, назвав политику в конфигурации шага.

Выбор точки подключения имеет решающее значение для поведения вашего прокси-сервера API. Например, если вы прикрепите политику квот к потоку ответа, то квота будет применена после отправки сообщения запроса во внутреннюю службу. Это противоречит цели применения политики квот! Поэтому вам необходимо прикрепить политику квот в качестве этапа обработки в потоке запросов.

Формат приложения к политике:

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

Например:

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

Политика присоединяется к потоку путем добавления конфигурации 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>

Вы должны изменить эту конфигурацию, чтобы ProxyEndpoint применял политику квот (в качестве шага обработки) до того, как прокси-сервер API выполнит любую другую обработку. Если разработчик превысил квоту, вы не хотите тратить вычислительные ресурсы на дополнительные запросы.

Чтобы обеспечить соблюдение этой конфигурации, вы прикрепляете шаг обработки к запросу 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>