Aggiungi il criterio SpikeArrest all'API

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Cosa imparerai a fare

In questo tutorial imparerai a:

  • Aggiungi un criterio che influisca sulla richiesta e sulla risposta.
  • Visualizza gli effetti delle norme.

Che cosa ti serve

Aggiungi il criterio SpikeArrest

In questo tutorial, aggiungerai e configurerai il criterio SpikeArrest per proteggere il servizio di destinazione da picchi di traffico improvvisi che possono essere causati da un aumento dell'utilizzo, da client con bug o da attacchi 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 l'interfaccia utente 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 Inizia, puoi aggiungerlo al proxy API che hai creato in Creare un proxy API.

  2. Fai clic sulla scheda Sviluppa.
  3. Nel riquadro a sinistra, fai clic sul pulsante + nella riga Criteri.
  4. Nella finestra di dialogo Crea criterio, fai clic nel campo Seleziona il tipo di criterio, scorri verso il basso fino a Gestione 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.

    Al termine, fai clic su Crea per creare il criterio.

Ora che hai creato il criterio SpikeArrest, puoi aggiungerlo a un passaggio del PreFlow.

  1. Seleziona Endpoint proxy > predefinito > PreFlow nel riquadro di sinistra:

    Endpoint di destinazione per PreFlow selezionati in Esplora proxy.

    Nota: per visualizzare tutti gli elementi, potresti dover espandere l'editor visivo nel riquadro a destra. A tale scopo, fai clic e trascina leggermente verso il basso la barra di divisione tra l'editor visivo e l'editor di testo.

  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 Passaggio Aggiungi criterio, seleziona il criterio SpikeArrest.
  4. Fai clic su Aggiungi per allegare il criterio.

    Il criterio Spike Arrest viene ora visualizzato nel riquadro Risposta:

    Criterio SpikeArrest visualizzato nel riquadro Risposta.

Ora che hai collegato il criterio SpikeArrest a PreFlow, puoi provare a modificare il codice per il criterio:

  1. Nel riquadro Risposta, seleziona SA-.

    Criterio SpikeArrest visualizzato nella scheda Criteri.

  2. L'editor di testo mostra il codice XML del proxy, incluso il passaggio delle norme di arresto degli picchi 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 file XML del criterio, modifica il valore dell'elemento <Rate> in 1pm (che si traduce in circa due richieste consentite ogni 60 secondi nel cloud).

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

    Tieni presente che anche il valore Rate nell'inspector delle proprietà diventa 1pm. In alternativa, puoi modificare il valore Rate nell'inspector della proprietà e questo verrà applicato alla vista 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 all'interfaccia utente di Apigee.
  2. Seleziona Sviluppa > 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 Inizia, puoi aggiungerlo al proxy API che hai creato in Creare un proxy API.

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

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

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

  5. Nel riquadro del navigatore a sinistra, fai clic su PreFlow in Endpoint proxy > predefinito. Altri tutorial tratteranno il concetto di flussi.
  6. Fai clic sul pulsante +Passaggio in alto, corrispondente al PreFlow della richiesta. Viene visualizzato un elenco classificato di tutti i criteri che puoi creare.

    Fai clic su Passaggio nella fase precedente della richiesta.

  7. Seleziona SpikeArrest nella categoria Gestione del traffico. Viene visualizzata la finestra di dialogo Nuova norma:

    Crea il criterio SpikeArrest.

  8. Lascia i nomi predefiniti e fai clic su Aggiungi. Il nuovo criterio è associato al flusso PreFlow di una richiesta.
  9. In Navigator, assicurati che PreFlow in Endpoint proxy > predefinito sia ancora selezionato e prendi nota di quanto segue nell'editor proxy API:
    • Il nuovo criterio SpikeArrest-1 viene aggiunto in Criteri nel Navigatore sul lato sinistro di API Proxy Editor.
    • L'icona SpikeArrest-1 viene aggiunta alla visualizzazione Progettazione in alto al centro dell'editor di proxy API, che è una rappresentazione visiva dei flussi di messaggi del proxy.
    • Il codice XML del criterio viene visualizzato nella visualizzazione Codice in basso al centro dell'editor proxy API.

    Visualizza PreFlow con il criterio SpikeArrest.

  10. In Navigator, seleziona SpikeArrest-1 in Norme e prendi nota di quanto segue nell'editor di proxy API:
    • I dettagli del criterio vengono visualizzati nella visualizzazione Progettazione in alto al centro dell'editor del proxy API.
    • Il codice XML del criterio viene visualizzato nella visualizzazione Codice in basso al centro dell'editor proxy API.
    • I valori dell'elemento XML e degli attributi per il criterio vengono visualizzati nell'inspector delle proprietà sul lato destro dell'editor proxy dell'API.

    Il riquadro dell&#39;ispettore delle proprietà mostra i valori per il criterio SpikeArrest-1.

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

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

    Tieni presente che anche il valore Rate nell'inspector delle proprietà diventa 1pm. In alternativa, puoi modificare il valore Rate nell'inspector della proprietà e questo verrà applicato alla vista 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 in:.
  14. Chiama l'API utilizzando curl, con l'URL del tuo dominio:

    curl "http://YOUR_DOMAIN/myproxy"

    dove:

    Per ulteriori informazioni, consulta Testare il proxy API.

    Assicurati che la richiesta vada a buon fine e che venga visualizzata la stessa risposta XML di prima. Puoi anche inserire solo l'URL in un browser web.

    A questo punto, prova a testare l'impostazione Rate in diversi modi:

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

      Se provi a 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), quindi salva ed esegui 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 con intervalli di quattro secondi, le chiamate vanno a buon fine. Se effettui le chiamate rapidamente, più di due entro quattro secondi, dovresti ricevere l'errore di guasto. Tuttavia, dopo ogni intervallo di 4 secondi puoi continuare a effettuare chiamate, anziché essere bloccato per un intero minuto (con l'impostazione 1pm).