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

Con questo tutorial imparerai a:

  • Aggiungi una norma che influisce sulla richiesta e sulla risposta.
  • Visualizza gli effetti delle norme.

Che cosa ti serve

Aggiungere il criterio SpikeArrest

In questo tutorial, aggiungerai e configurerai il criterio SpikeArrest per proteggere il servizio di destinazione da improvvisi picchi di traffico 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.

Apigee nella console Cloud

Per aggiungere il criterio SpikeArrest a un proxy API:

  1. Nella console Google Cloud , vai alla pagina Sviluppo proxy > Proxy API.

    Vai a Proxy API

    Se hai seguito il tutorial Guida introduttiva, puoi aggiungerlo al proxy API che hai creato in Crea 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 sul campo Seleziona tipo di criterio e scorri verso il basso fino a Gestione del traffico e seleziona SpikeArrest.

  5. (Facoltativo) Puoi modificare il Nome e il Nome visualizzato della policy. Per impostazione predefinita, Apigee fornisce un prefisso breve 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 la norma.

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

  1. Seleziona Proxy Endpoints > default > PreFlow nel riquadro a sinistra:

    Seleziona gli endpoint di destinazione per PreFlow in Esplora proxy.

    Nota:per visualizzare tutti gli elementi, potrebbe essere necessario espandere l'editor visuale nel riquadro a destra. Per farlo, 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 dell'editor visivo:

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

  3. Nella finestra di dialogo Aggiungi passaggio criterio, seleziona il criterio SpikeArrest.
  4. Fai clic su Aggiungi per allegare la policy.

    Il criterio Spike Arrest viene ora visualizzato nel riquadro Risposta:

    Il criterio SpikeArrest visualizzato nel riquadro Risposta.

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

  1. Nel riquadro Risposta, seleziona SA-.

    Criterio Spike Arrest visualizzato nella scheda Criteri.

  2. L'editor di testo mostra il codice XML del proxy, incluso il 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 file XML per il 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 la norma. In genere, lo imposti su un limite molto più alto.

    Tieni presente che anche il valore Rate in Controllo proprietà cambia in 1pm. In alternativa, puoi modificare il valore di Frequenza in Property Inspector e verrà visualizzato nella visualizzazione XML.

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

UI classica

Per aggiungere il criterio SpikeArrest a un proxy API:

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

    Se hai seguito il tutorial Guida introduttiva, puoi aggiungerlo al proxy API che hai creato in Crea 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 proxy API ti consente di visualizzare la struttura del proxy API e configurarne il flusso. L'editor presenta una rappresentazione visiva del flusso di messaggi di richiesta e risposta del proxy e una visualizzazione modificabile dell'XML sottostante che definisce il proxy.

  5. Nel riquadro di navigazione a sinistra, fai clic su PreFlow in Proxy Endpoints > default. (Altri tutorial tratteranno il concetto di flussi.)
  6. Fai clic sul pulsante +Passaggio in alto, corrispondente al pre-flow della richiesta. Viene visualizzato un elenco categorizzato di tutte le norme che puoi creare.

    Fai clic su Passaggio in Request PreFlow.

  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. Le nuove norme sono associate al flusso PreFlow di una richiesta.
  9. Nel navigatore, assicurati che PreFlow in Proxy Endpoints > default 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 dell'editor proxy API.
    • L'icona SpikeArrest-1 viene aggiunta alla visualizzazione Progettazione nella parte superiore centrale dell'editor proxy API, che è una rappresentazione visiva dei flussi di messaggi del proxy.
    • Il codice XML per il criterio viene visualizzato nella visualizzazione Codice nella parte inferiore centrale dell'editor proxy API.

    Visualizza PreFlow con il criterio SpikeArrest.

  10. Nel Navigator, seleziona SpikeArrest-1 in Policies e prendi nota di quanto segue nell'editor proxy API:
    • I dettagli delle norme vengono visualizzati nella visualizzazione Progettista nella parte superiore centrale dell'editor proxy API.
    • Il codice XML per il criterio viene visualizzato nella visualizzazione Codice nella parte inferiore centrale dell'editor proxy API.
    • I valori dell'elemento e dell'attributo XML per il criterio vengono visualizzati in Property Inspector sul lato destro dell'editor proxy API.

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

  11. Nel file XML per il 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 la norma. In genere, lo imposti su un limite molto più alto.

    Tieni presente che anche il valore Rate in Controllo proprietà cambia in 1pm. In alternativa, puoi modificare il valore di Frequenza in Property Inspector e verrà visualizzato 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 su:.
  14. Chiama l'API utilizzando curl, utilizzando l'URL del tuo dominio:

    curl "http://YOUR_DOMAIN/myproxy"

    dove:

    Per saperne di più, consulta la sezione Testare il proxy API.

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

    Successivamente, 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 dei criteri:
      {
      "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 la policy per impostare il limite di <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 ripetutamente il browser (curl è più veloce). Tieni presente che se effettui una o due chiamate a 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).