SpikeArrest-Richtlinie in die API einfügen

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Lerninhalte

In dieser Anleitung lernen Sie Folgendes:

  • Sie fügen eine Richtlinie hinzu, die die Anfrage und die Antwort beeinflusst.
  • Sie sehen die Auswirkungen der Richtlinie.

Voraussetzungen

  • Eine Apigee-Installation. Weitere Informationen zu Übersicht und Voraussetzungen.
  • Einen funktionierenden API-Proxy, dem mindestens eine Richtlinie angehängt ist. Weitere Informationen zu Ersten API-Proxy erstellen.
  • Auf Ihrem Computer installierter HTTP-API-Client für API-Aufrufe. In den Beispielen der Anleitung wird curl verwendet.

SpikeArrest-Richtlinie hinzufügen

In diesem Tutorial fügen Sie die Spike Arrest-Richtlinie hinzu und konfigurieren sie, um den Zieldienst vor plötzlichen Traffic-Spitzen zu schützen, die durch einen Anstieg der Nutzung, fehlerhafte Clients oder böswillige Angriffe verursacht werden können. Wenn die Anzahl der Anfragen die Ratenbegrenzung überschreitet, gibt die API den HTTP-Fehler 429 zurück.

Neuer Proxy-Editor

Um die die SpikeArrest-Richtlinie einem API-Proxy hinzuzufügen:

  1. Wenn Sie die Apigee-UI in der Cloud Console verwenden: Wählen Sie Proxy-Entwicklung > API-Proxys aus.

    Wenn Sie die klassischeApigee-UI verwenden: Wählen Sie Entwickeln > API-Proxys aus und im Bereich Proxys wählen Sie die Umgebung für den Proxy aus.

    Wenn Sie der Anleitung "Erste Schritte" gefolgt sind, können Sie sie dem API-Proxy hinzufügen, den Sie unter API-Proxy erstellen angelegt haben.

  2. Klicken Sie auf den Tab Entwickeln.
  3. Klicken Sie im linken Bereich in der Zeile Richtlinien auf die Schaltfläche +.
  4. Klicken Sie im Dialogfeld Richtlinie erstellen in das Feld Richtlinientyp auswählen und scrollen Sie nach unten zu Trafficverwaltung und wählen Sie Spike Arrest.

  5. Optional können Sie den Namen und den Anzeigenamen der Richtlinie ändern. Standardmäßig stellt Apigee ein kurzes Präfix für den Richtliniennamen bereit, in diesem Fall SA-. Sie können eine Folge von beschreibenden Wörtern hinzufügen, die durch Bindestriche getrennt sind. Siehe Namenskonventionen.

    Erstellen Sie den "Richtlinie erstellen"-Dialog.

    Wenn Sie fertig sind, klicken Sie auf Erstellen, um die Richtlinie zu erstellen.

Da Sie nun die Spike Arrest-Richtlinie erstellt haben, können Sie sie einem Schritt im PreFlow hinzufügen.

  1. Wählen Sie im linken Bereich Proxy-Endpunkte > Standard > PreFlow:

    Wählen Sie Zielendpunkte für PreFlow im Proxy-Explorer aus.

    Hinweis: Möglicherweise müssen Sie den visuellen Editor im rechten Bereich erweitern, um alle Elemente anzuzeigen. Klicken Sie dazu auf die Trennlinie zwischen dem visuellen Editor und dem Texteditor.

  2. Klicken Sie auf die Schaltfläche + neben PreFlow im Antwortbereich unten rechts im visuellen Editor:

    Klicken Sie im Antwortbereich neben PreFlow auf die Schaltfläche "+".

  3. Wählen Sie im Dialogfeld Richtlinienschritt hinzufügen die Richtlinie Spike Arrest.
  4. Klicken Sie auf Hinzufügen, um die Richtlinie anzuhängen.

    Die Richtlinie Spike Arrest wird jetzt im Bereich Antwort angezeigt:

    Richtlinie "Spike Arrest" im Antwortbereich.

Nachdem Sie die Spike Arrest-Richtlinie an den PreFlow angehängt haben, können Sie versuchen, den Code für die Richtlinie zu ändern:

  1. Wählen Sie im Bereich Antwort die Option SA- aus.

    Die Spike Arrest-Richtlinie wird auf dem Tab "Richtlinien" angezeigt.

  2. Im Texteditor wird der XML-Code für den Proxy angezeigt, einschließlich des Spike Arrest-Richtlinienschritts im Element Antwort des PreFlow.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SpikeArrest continueOnError="false" enabled="true" name="SA-">
        <DisplayName>SA-</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
  3. Ändern Sie in der XML-Richtlinie für die Richtlinie den Wert des Elements <Rate> in 1pm, was ungefähr zwei Anfragen pro 60 Sekunden in der Cloud entspricht.

    Sie können die Rate als Ganzzahlwert pro Minute (pm) oder pro Sekunde (ps) angeben. Dies ist ein sehr geringes Limit und wird nur für diese Anleitung verwendet, um die Richtlinie zu veranschaulichen. In der Regel legen Sie dafür einen viel höheren Grenzwert fest.

    Beachten Sie, dass sich der Wert Rate im Property-Prüftool auch in 1pm ändert. Alternativ können Sie den Wert Rate im Property Inspector ändern, der dann in der XML-Ansicht angezeigt wird.

  4. Klicken Sie auf Speichern, um die aktuelle Überarbeitung mit Ihren Änderungen zu speichern.

Klassischer Proxy-Editor

Um die die SpikeArrest-Richtlinie einem API-Proxy hinzuzufügen:

  1. Melden Sie sich in der Apigee-Benutzeroberfläche an.
  2. Wählen Sie in der linken Navigationsleiste Develop > API Proxies aus.
  3. Wählen Sie den API-Proxy aus, dem Sie die SpikeArrest-Richtlinie hinzufügen möchten.

    Wenn Sie der Anleitung "Erste Schritte" gefolgt sind, können Sie sie dem API-Proxy hinzufügen, den Sie unter API-Proxy erstellen angelegt haben.

  4. Klicken Sie im Editor für den neuen API-Proxy auf den Tab Entwickeln:

    Der Tab &quot;Entwickeln&quot; befindet sich zwischen den Tabs &quot;Übersicht&quot; und &quot;Trace&quot;.

    Mit dem API-Proxy-Editor können Sie die Struktur Ihres API-Proxys sehen und seinen Flow konfigurieren. Der Editor zeigt eine visuelle Darstellung des Anfrage- und Antwort-Flows Ihres Proxys sowie eine bearbeitbare Anzeige der zugrunde liegenden XML, der den Proxy definiert.

  5. Klicken Sie im linken Navigationsbereich unter PreFlow auf PreFlow. In anderen Anleitungen wird das Konzept von Flows behandelt.
  6. Klicken Sie auf die Schaltfläche +Schritt für das Anfrage-PreFlow. Dadurch wird eine kategorisierte Liste aller Richtlinien angezeigt, die Sie erstellen können.

    Klicken Sie bei &quot;Anfrage-PreFlow&quot; auf &quot;Schritt&quot;.

  7. Wählen Sie in der Kategorie „Trafficverwaltung“ die Option SpikeArrest aus. Das Dialogfeld Neue Richtlinie wird angezeigt:

    Grafik: SpikeArrest-Richtlinie erstellen

  8. Übernehmen Sie die Standardnamen und klicken Sie auf Hinzufügen. Die neue Richtlinie ist an den PreFlow-Flow einer Anfrage angehängt.
  9. Sorgen Sie im Navigationsbereich dafür, dass PreFlow unter Proxy-Endpunkte > Standard weiterhin ausgewählt ist und notieren Sie im API-Proxy-Editor folgendes:
    • Die neue SpikeArrest-1-Richtlinie wird im Navigator auf der linken Seite des API-Proxy-Editors unter Richtlinien hinzugefügt.
    • Das SpikeArrest-1-Symbol wird der Designeransicht im oberen Bereich des API-Proxy-Editors hinzugefügt, das eine visuelle Darstellung der Nachrichten-Flows Ihres Proxys ist.
    • Die XML für die Richtlinie wird in der Codeansicht unten in der Mitte des API-Proxy-Editors angezeigt.

    Grafik: PreFlow mit SpikeArrest-Richtlinie aufrufen

  10. Wählen Sie im Navigator unter „Richtlinien“ die Option SpikeArrest-1 aus und beachten Sie Folgendes im API-Proxy-Editor:
    • Die Richtliniendetails werden in der Designeransicht oben in der Mitte des API-Proxy-Editors angezeigt.
    • Die XML für die Richtlinie wird in der Codeansicht unten in der Mitte des API-Proxy-Editors angezeigt.
    • Die XML-Element- und Attributwerte für die Richtlinie werden im Property Inspector auf der rechten Seite des API-Proxy-Editors angezeigt.

    Grafik: Im Bereich „Property Inspector“ werden die Werte für die SpikeArrest-1-Richtlinie angezeigt.

  11. Ändern Sie in der XML-Richtlinie für die Richtlinie den Wert des Elements <Rate> in 1pm, was ungefähr zwei Anfragen pro 60 Sekunden in der Cloud entspricht.

    Sie können die Rate als Ganzzahlwert pro Minute (pm) oder pro Sekunde (ps) angeben. Dies ist ein sehr geringes Limit und wird nur für diese Anleitung verwendet, um die Richtlinie zu veranschaulichen. In der Regel legen Sie dafür einen viel höheren Grenzwert fest.

    Beachten Sie, dass sich der Wert Rate im Property-Prüftool auch in 1pm ändert. Alternativ können Sie den Wert Rate im Property Inspector ändern, der dann in der XML-Ansicht angezeigt wird.

  12. Klicken Sie auf Speichern, um die aktuelle Überarbeitung mit Ihren Änderungen zu speichern.
  13. Stellen Sie Ihre Änderungen bereit. Verwenden Sie dazu die Schaltfläche Bereitstellen in:.
  14. Rufen Sie die API mit curl auf und geben Sie dabei die URL für Ihre Domain an:

    curl "http://YOUR_DOMAIN/myproxy"

    Dabei gilt:

    • ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe, den Sie während der Bereitstellung festgelegt haben.
    • DOMAIN_HOSTNAME ist Ihr Domain-Hostname.

    Weitere Informationen zu API-Proxy testen.

    Prüfen Sie, ob die Anfrage erfolgreich ist und Sie die gleiche XML-Antwort sehen wie zuvor. Sie können auch nur die URL in einen Webbrowser eingeben.

    Testen Sie als Nächstes die Rate-Einstellung auf verschiedene Arten:

    • Führen Sie den Befehl curl (oder aktualisieren Sie das Browserfenster) innerhalb einer Minute aus. Sie erhalten dann die folgende Meldung, da Sie die Ratenbegrenzung der Richtlinie überschritten haben:
      {
      "fault": {
        "faultstring":"Spike arrest violation. Allowed rate : 1pm",
        "detail": {
          "errorcode":"policies.ratelimit.SpikeArrestViolation"}
        }
      }

      Wenn Sie versuchen, die Anzahl der Aufrufe innerhalb einer Minute zu erhöhen, erhalten Sie weiterhin die Fehlermeldung.

    • Bearbeiten Sie Ihre Richtlinie, um das <Rate>-Limit auf 15pm festzulegen (was in der Cloud ungefähr zwei Aufrufen alle vier Sekunden entspricht). Speichern Sie dann den API-Proxy und stellen Sie ihn bereit.
    • Führen Sie den Befehl curl aus oder aktualisieren Sie den Browser wiederholt (curl ist schneller). Wenn Sie einen oder zwei Anrufe innerhalb von vier Sekunden ausführen, sind Ihre Aufrufe erfolgreich. Wenn Sie die Aufrufe schnell ausführen (mehr als zwei innerhalb von vier Sekunden), sollten Sie den Fehler erhalten. Nach jedem 4-Sekunden-Intervall können Sie aber neue Aufrufe ausführen, statt eine ganze Minute lang blockiert zu sein (bei der Einstellung 1pm).