Aggiungi il criterio SpikeArrest all'API

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

Cosa imparerai a fare

Tramite questo tutorial imparerai a:

  • Aggiungi un criterio che influisce sulla richiesta e sulla risposta.
  • Vedi gli effetti delle norme.

Che cosa ti serve

  • Un'installazione Apigee. Vedi Panoramica e prerequisiti.
  • Un proxy API funzionante con almeno un criterio collegato. Consulta la pagina Creare il primo proxy API.
  • Un client API HTTP installato sulla tua macchina per effettuare chiamate API. I tutorial di esempio utilizza curl.

Aggiungi il criterio SpikeArrest

In questo tutorial, aggiungerai e configurerai il criterio SpikeArrest per proteggere il bersaglio del servizio contro picchi di traffico improvvisi che possono essere causati da un aumento dell'utilizzo, da client con bug o dannosi. Quando il numero di richieste supera il limite di frequenza, l'API restituisce un Errore HTTP 429.

Nuovo editor proxy

Per aggiungere il criterio SpikeArrest a un proxy API:

  1. Se utilizzi la UI di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi la UI di Apigee classica: seleziona Sviluppa > Proxy API e, nel riquadro Proxy, seleziona l'ambiente per il proxy.

    Se hai seguito il tutorial iniziale, puoi aggiungerlo al Proxy API creato nella sezione Creare un proxy API.

  2. Fai clic sulla scheda Sviluppo.
  3. Nel riquadro a sinistra, fai clic sul pulsante + nella riga Norme.
  4. Nella finestra di dialogo Crea criterio, fai clic nel campo Seleziona il tipo di criterio e Scorri verso il basso fino a Gestione del traffico e seleziona SpikeArrest.

  5. Se vuoi, puoi modificare il Nome e il Nome visualizzato del criterio. Per impostazione predefinita, Apigee fornisce un breve prefisso per il nome del criterio, in questo caso SA-. Puoi aggiungere una sequenza di parole descrittive, separate da trattini, dopo il prefisso. Consulta Convenzioni di denominazione.

    Finestra di dialogo Crea criterio.

    Quando hai finito, fai clic su Crea per creare la norma.

Ora che hai creato il criterio di arresto dei picchi, puoi aggiungerlo a un passaggio nella preFlow.

  1. Seleziona Endpoint proxy > predefinita > PreFlow nel riquadro a sinistra:

    Seleziona gli endpoint di destinazione per PreFlow in Proxy Explorer.

    Nota: potrebbe essere necessario espandere l'editor visivo nel riquadro a destra per vedere tutte le elementi. Per farlo, fai clic e trascina il divisore tra l'editor visivo e l'editor di testo un po' meno.

  2. Fai clic sul pulsante + accanto a PreFlow nel riquadro Risposta in basso a destra nell'editor visivo:

    Fai clic sul pulsante + accanto a PreFlow nel riquadro Risposta.

  3. Nella finestra di dialogo Aggiungi criterio, seleziona il criterio Arresto picco.
  4. Fai clic su Aggiungi per allegare il criterio.

    Il criterio Arresto improvviso è ora visualizzato nel riquadro Risposta:

    Criterio di arresto dei picchi visualizzato nel riquadro Risposta.

Ora che hai collegato il criterio Spike Arrest a PreFlow, puoi provare a modificare il codice per le norme:

  1. Nel riquadro Risposta, seleziona SA-.

    Criterio di arresto dei picchi visualizzato nella scheda Criteri.

  2. L'editor di testo visualizza il codice XML per il proxy, che include Passaggio del criterio Spike Arrest nell'elemento Response di 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. Nel codice XML del criterio, modifica il valore del parametro <Rate> elemento in 1pm (che si traduce in circa due richieste consentite ogni 60 secondi nel cloud).

    Puoi specificare la tariffa come valore intero al minuto (pm) o secondo (ps). Si tratta di un limite molto basso e viene utilizzato solo per questo tutorial a dimostrare il criterio. In genere, si imposta un limite molto più alto.

    Tieni presente che anche il valore Rate nella finestra Controllo proprietà diventa 1pm. In alternativa, puoi modificare il valore Tariffa in Proprietà. e si rifletterà nella visualizzazione XML.

  4. Fai clic su Salva per salvare la revisione corrente con le modifiche.

Editor proxy classico

Per aggiungere il criterio SpikeArrest a un proxy API:

  1. Accedi alla UI di Apigee.
  2. Seleziona Sviluppo > Proxy API nella barra di navigazione a sinistra.
  3. Seleziona il proxy API a cui vuoi aggiungere il criterio SpikeArrest.

    Se hai seguito il tutorial iniziale, puoi aggiungerlo al Proxy API creato nella sezione Creare un proxy API.

  4. Nell'editor del nuovo proxy API, fai clic sulla scheda Sviluppo:

    La scheda Sviluppo si trova tra le schede Panoramica e Trace.

    L'editor proxy API consente di visualizzare la struttura del proxy API e di configurarne il flusso. L'editor presenta una rappresentazione visiva del messaggio di richiesta e risposta del proxy nonché una visualizzazione modificabile del codice XML sottostante che definisce il proxy.

  5. Nel riquadro di navigazione a sinistra, fai clic su PreFlow sotto Proxy Endpoint > predefinita. (Altri tutorial tratteranno il concetto di flussi.)
  6. Fai clic sul pulsante +Step in alto, corrispondente a Request PreFlow. Questo mostra un elenco categorizzato di tutti i criteri che puoi creare.

    Fai clic su Step in Request PreFlow.

  7. Seleziona SpikeArrest nella categoria Gestione del traffico. Il nuovo Viene visualizzata la finestra di dialogo Norme:

    Creazione del criterio SpikeArrest.

  8. Lascia i nomi predefiniti e fai clic su Aggiungi. Il nuovo criterio è associato il flusso PreFlow di una richiesta.
  9. Nel navigatore, assicurati che PreFlow in Endpoint proxy > predefinita è ancora selezionata e tieni presente quanto segue nell'Editor proxy API:
      .
    • Il nuovo criterio SpikeArrest-1 viene aggiunto nella sezione Criteri della sezione Navigatore sul lato sinistro dell'editor del proxy API.
    • L'icona SpikeArrest-1 viene aggiunta alla vista Designer in in alto al centro dell'API Proxy Editor, che è una rappresentazione visiva dei dei messaggi del proxy.
    • Il codice XML del criterio viene visualizzato nella Vista codice in in basso al centro dell'API Proxy Editor.

    Visualizza PreFlow con il criterio SpikeArrest.

  10. Nel riquadro di navigazione, seleziona SpikeArrest-1 nella sezione Norme e tieni presente nell'Editor proxy API:
      .
    • I dettagli del criterio vengono mostrati nella vista Designer in alto Center dell'API Proxy Editor.
    • Il codice XML del criterio viene visualizzato nella Vista codice in basso Center dell'API Proxy Editor.
    • I valori degli elementi e degli attributi XML per il criterio vengono visualizzati in Proprietà sul lato destro dell'Editor proxy API.

    Il riquadro Controllo proprietà mostra i valori del criterio SpikeArrest-1.

  11. Nel codice XML del criterio, modifica il valore del parametro <Rate> elemento in 1pm (che si traduce in circa due richieste consentite ogni 60 secondi nel cloud).

    Puoi specificare la tariffa come valore intero al minuto (pm) o secondo (ps). Si tratta di un limite molto basso e viene utilizzato solo per questo tutorial a dimostrare il criterio. In genere, si imposta un limite molto più alto.

    Tieni presente che anche il valore Rate nella finestra Controllo proprietà diventa 1pm. In alternativa, puoi modificare il valore Tariffa in Proprietà. e si rifletterà nella visualizzazione XML.

  12. Fai clic su Salva per salvare la revisione corrente con le modifiche.
  13. Esegui il deployment delle modifiche utilizzando il pulsante Esegui il deployment per:.
  14. Chiama l'API utilizzando curl, utilizzando l'URL del tuo dominio:

    curl "http://YOUR_DOMAIN/myproxy"

    dove:

    Vedi Per ulteriori informazioni, testa il proxy API.

    Assicurati che la richiesta abbia esito positivo e che visualizzi la stessa risposta XML di prima. Puoi anche inserire solo l'URL in un browser web.

    Ora prova a testare l'impostazione Rate in diversi modi:

    • Esegui il comando curl (o aggiorna la finestra del browser) altri due o tre volte entro un minuto e vedrai che viene visualizzato il seguente messaggio perché hai superato il limite di frequenza delle norme:
      {
      "fault": {
        "faultstring":"Spike arrest violation. Allowed rate : 1pm",
        "detail": {
          "errorcode":"policies.ratelimit.SpikeArrestViolation"}
        }
      }

      Se tenti di effettuare altre chiamate entro un minuto, continuerai a ricevere il messaggio di errore.

    • Modifica il criterio per impostare il limite <Rate> su 15pm (che si traduce in circa due chiamate consentite ogni quattro secondi nel cloud) e quindi salvare ed eseguire il deployment del proxy API.
    • Esegui il comando curl o aggiorna il browser ripetutamente (curl è più veloce). Tieni presente che se effettui una o due chiamate entro intervalli di quattro secondi, le chiamate avranno esito positivo. Se se effettui le chiamate rapidamente, più di due in quattro secondi, dovresti ricevere l'errore di errore. Ma dopo ogni intervallo di 4 secondi puoi continuare a fare chiamate, invece di essere bloccato per minuto intero (con l'impostazione 1pm).