Richtlinie an einen ProxyEndpoint- oder TargetEndpoint-Ablauf anhängen

Sie sehen die Apigee Edge-Dokumentation.
Rufen Sie die Apigee X-Dokumentation auf.
weitere Informationen

Richtlinien werden erst ausgeführt, wenn sie einem Ablauf zugeordnet sind. Sie können einen Richtlinienanhang erstellen, indem Sie eine Richtlinie in einer Schrittkonfiguration benennen.

Die Wahl des Anhangspunkts ist für das Verhalten Ihres API-Proxys entscheidend. Wenn Sie beispielsweise die Kontingentrichtlinie an einen Antwortablauf anhängen, wird das Kontingent erzwungen, nachdem die Anfragenachricht an den Back-End-Dienst gesendet wurde. Dies würde den Zweck einer Anwendung von Kontingentrichtlinien beeinträchtigen. Daher müssen Sie die Kontingentrichtlinie als Verarbeitungsschritt im Anfrageablauf anhängen.

So sieht das Format eines Richtlinienanhangs aus:

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

Beispiel:

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

Eine Richtlinie wird an einen Ablauf angehängt, indem die Schrittkonfiguration dem entsprechenden Anfrage- oder Antwortelement des Ablaufs in einer ProxyEndpoint- oder TargetEndpoint-Konfiguration hinzugefügt wird.

Sie können eine Richtlinie an einen Anfrage- oder Antwortablauf anhängen. Anfrage- und Antwortabläufe werden weiter in PreFlow und PostFlow unterteilt.

Das folgende Beispiel zeigt die minimale ProxyEndpoint-Konfiguration ohne Richtlinienanhänge. Es definiert einfach die (eingehende) HTTPProxyConnection und eine RouteRule.

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

Sie müssen diese Konfiguration so ändern, dass der ProxyEndpoint als Verarbeitungsschritt eine Kontingentrichtlinie durchsetzt, bevor der API-Proxy andere Verarbeitungsschritte ausführt. Wenn ein Entwickler ein Kontingent überschritten hat, sollten keine Rechenressourcen für zusätzliche Anfragen verschwendet werden.

Zur Durchsetzung dieser Konfiguration hängen Sie den Verarbeitungsschritt so an die PreFlow-Anfrage an:

<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>

Manchmal möchten Sie, dass eine Richtlinie nach einer anderen anfänglichen Verarbeitung auf dem ProxyEndpoint ausgeführt wird. Sie haben beispielsweise die Möglichkeit, das Kontingent im PreFlow zu prüfen und anschließend eine weitere Verarbeitung auszuführen, beispielsweise wenn die Anfrage von JSON in XML konvertiert wird. Hängen Sie dazu eine Richtlinie an den PostFlow-Anfragepfad an. Hier sehen Sie ein Beispiel für einen PostFlow-Anhang. Diese Richtlinie wird in der Anfragenachricht ausgeführt, nachdem alle Richtlinien im PreFlow (und allen bedingten Abläufen) ausgeführt wurden.

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

Hier ist ein Beispiel für einen PostFlow-Anhang: Diese Richtlinie wird in der Antwortnachricht ausgeführt. (Die ProxyEndpoint-Antwort PostFlow ist die letzte Verarbeitungsphase, bevor die Antwort an die anfragende Client-App zurückgegeben wird.)

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