Aggiungere il criterio Spike Arrest all'API

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Cosa imparerai a fare

Con questo tutorial imparerai a:

  • Aggiungi un criterio che interessi la richiesta e la risposta.
  • Vedi gli effetti delle norme.

Che cosa ti serve

  • Almeno un criterio nel proxy (parte anche del tutorial introduttivo).
  • curl installato sulla tua macchina per effettuare chiamate API dalla riga di comando.

Aggiungere il criterio di Spike Arrest

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, client con bug o attacchi dannosi. Quando il numero di richieste supera il limite di frequenza, l'API restituisce un errore HTTP 500 per una richiesta.

Aggiungi il criterio Spike Arrest a un proxy API:

  1. Accedi ad apigee.com/edge.
  2. Seleziona Sviluppo > Proxy API nella barra di navigazione a sinistra.
  3. Seleziona il proxy API a cui vuoi aggiungere il criterio Spike Arrest.

    Se hai seguito il tutorial Inizia, puoi aggiungerlo al proxy "getstarted" creato nella sezione Creare un proxy API.

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

    L'editor del proxy API 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 di navigazione a sinistra, fai clic su PreFlow in Endpoint proxy > default. (Altri tutorial tratteranno il concetto di flussi).
  6. Fai clic sul pulsante +Passaggio in alto, corrispondente al Preflusso della richiesta. Viene visualizzato un elenco classificato di tutti i criteri che puoi creare.

    Fai clic su Passaggio in Richiedi pre-flusso

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

    Crea criterio di Spike Arrest

  8. Lascia invariati i nomi predefiniti e fai clic su Aggiungi. Il nuovo criterio è associato al flusso di pre-flusso di una richiesta.
  9. Nel navigatore, assicurati che l'opzione PreFlow in Endpoint proxy > predefiniti sia ancora selezionata e tieni presente quanto segue nell'editor proxy API:
    • Il nuovo criterio Spike Arrest-1 viene aggiunto in Policies (Criteri) nel riquadro di navigazione sul lato sinistro dell'editor del proxy API.
    • L'icona Spike Arrest-1 viene aggiunta alla vista Designer in alto al centro dell'editor proxy API, che è una rappresentazione visiva dei flussi di messaggi del tuo proxy.
    • Il codice XML del criterio viene visualizzato nella Vista codice in basso al centro dell'editor proxy API.

    Visualizza le norme PreFlow con Spike Arrest

  10. Nel riquadro di navigazione, seleziona Spike Arrest-1 in Criteri e prendi nota di quanto segue nell'editor del proxy API:
    • I dettagli del criterio sono visualizzati nella vista Designer in alto al centro dell'editor proxy API.
    • Il codice XML del criterio viene visualizzato nella Vista codice in basso al centro dell'editor proxy API.
    • L'elemento XML e i valori degli attributi della norma sono visualizzati nella sezione Property Inspector sul lato destro dell'editor proxy API.

  11. Nel file XML del criterio, modifica il valore dell'elemento <Rate> in 13 (il che si traduce in circa 2 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 al fine di dimostrare il criterio. In genere, lo imposti su un limite molto più alto.

    Tieni presente che anche il valore Rate nella finestra Controllo proprietà diventa "13:00". In alternativa, puoi modificare il valore Tariffa nel Controllo proprietà e verrà riportato nella vista XML.

  12. Fai clic su Salva per salvare la revisione corrente con le modifiche.
  13. Chiama l'API utilizzando curl, sostituendo il nome dell'organizzazione Apigee con org_name:

    curl "http://org_name-test.apigee.net/getstarted"

    Ad esempio:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    Assicurati che la richiesta abbia esito positivo e che la risposta XML sia la stessa di prima. In un browser web puoi anche inserire soltanto l'URL.

  14. Esegui il comando curl (o aggiorna la finestra del browser) altre due o tre volte in un minuto e vedrai 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, dovresti continuare a ricevere il messaggio di errore.

  15. Modifica il criterio per impostare il limite <Rate> su 15:00 (che si traduce in circa 2 chiamate consentite ogni 4 secondi nel cloud), quindi salva il proxy API.
  16. Esegui il comando curl o aggiorna il browser ripetutamente (curl è più veloce). Tieni presente che se effettui una o due chiamate a intervalli di 4 secondi, le chiamate avranno esito positivo. Se effettui le chiamate rapidamente, più di due in 4 secondi, dovresti ricevere l'errore. Dopo ogni intervallo di 4 secondi, però, puoi continuare a effettuare chiamate, invece di rimanere bloccato per un minuto intero (con l'impostazione alle 13:00).