Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Pubblico
Questo argomento è rivolto agli operatori Edge Microgateway che vogliono utilizzare plug-in esistenti che vengono installati con il microgateway. Inoltre, illustra l'arresto dei picchi e i plug-in delle quote (entrambi sono inclusi nell'installazione). Se sei uno sviluppatore che vuole sviluppare nuove come plug-in, consulta l'articolo Sviluppare o plug-in.
Che cos'è un plug-in Edge Microgateway?
Un plug-in è un modulo Node.js che aggiunge funzionalità a Edge Microgateway. Moduli plug-in seguono un pattern coerente e vengono archiviati in una posizione nota a Edge Microgateway, consentendo un microgateway per scoprirli e caricarli automaticamente. Edge Microgateway include diversi e anche creare plug-in personalizzati, come spiegato nella sezione Sviluppare o plug-in.
Plug-in esistenti in bundle con Edge Microgateway
Diversi plug-in esistenti vengono forniti con Edge Microgateway al momento dell’installazione. Questi include:
| Plug-in | Abilitato per impostazione predefinita | Descrizione |
|---|---|---|
| Analytics | Sì | Invia i dati di analisi da Edge Microgateway ad Apigee Edge. |
| oauth | Sì | Aggiunge il token OAuth e la convalida delle chiavi API a Edge Microgateway. Consulta la sezione Impostazioni e configurare Edge Microgateway. |
| quota | No | Applica la quota alle richieste a Edge Microgateway. Utilizza Apigee Edge per archiviare e gestire le quote. Consulta Utilizzo della quota plug-in. |
| arresto | No | Protegge da picchi di traffico e attacchi DoS. Consulta la sezione Utilizzare il plug-in di arresto dei picchi. |
| intestazione-maiuscola | No | Un proxy di esempio commentato inteso come guida per aiutare gli sviluppatori a scrivere plug-in personalizzati. Vedi Edge Plug-in di esempio Microgateway. |
| accumulate-request | No | Accumula i dati della richiesta in un singolo oggetto prima di passarli al successivo nella catena di plug-in. Utile per scrivere plug-in di trasformazione che devono operare su un singolo oggetto di contenuto della richiesta accumulato. |
| accumulate-response | No | Accumula i dati di risposta in un singolo oggetto prima di passarli a quello successivo nella catena di plug-in. Utile per scrivere plug-in di trasformazione che devono operare su un singolo oggetto di contenuto di risposta accumulata. |
| trasforma in maiuscolo | No | Trasforma i dati di richiesta o risposta. Questo plug-in rappresenta una best practice di un plug-in di trasformazione. Il plug-in di esempio esegue una trasformazione banale (converte i dati della richiesta o della risposta in lettere maiuscole); ma possono essere facilmente adattati eseguire altri tipi di trasformazioni, ad esempio da XML a JSON. |
| json2xml | No | Trasforma i dati di richieste o risposte in base alle intestazioni di tipo Accetta o Content-Type. Per dettagli, fai riferimento al plug-in documentazione in GitHub. |
| memoria-quota | No | Applica la quota alle richieste a Edge Microgateway. Archivia e gestisce le quote in la memoria. |
| controllo di integrità | No | Restituisce informazioni sul processo Edge Microgateway: utilizzo della memoria, utilizzo della CPU, E così via. Per usare il plug-in, chiama l'URL /healthcheck sul tuo perimetro Istanza microgateway. Questo plug-in è pensato come esempio per di implementare il tuo plug-in per il controllo di integrità. |
Dove trovare i plug-in esistenti
I plug-in esistenti in bundle con Edge Microgateway si trovano qui,
dove [prefix] è la directory del prefisso npm.
Scopri dove
se è installato Edge Microgateway.
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins
Aggiunta e configurazione di plug-in
Per aggiungere e configurare i plug-in, segui questo pattern:
- Arresta il microgateway Edge.
- Apri un file di configurazione di Edge Microgateway. Per i dettagli, consulta la sezione Come rendere modifiche alla configurazione delle opzioni.
- Aggiungi il plug-in all'elemento
plugins:sequencedel file di configurazione. come segue: I plug-in vengono eseguiti nell'ordine in cui appaiono nell'elenco.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - plugin-name
- Configura il plug-in. Alcuni plug-in hanno parametri facoltativi che possono essere configurati nel
di configurazione del deployment. Ad esempio, puoi aggiungere la stanza seguente per configurare l'arresto dei picchi
. Consulta l'articolo Utilizzo dell'arresto dei picchi
plug-in per ulteriori informazioni.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10
- Salva il file.
- Riavvia o ricarica Edge Microgateway, a seconda del file di configurazione modificato, come spiegati nella sezione Rendere modifiche alla configurazione.
Configurazione specifica per il plug-in
Puoi eseguire l'override dei parametri del plug-in specificati nel file di configurazione creando un specifica per il plug-in in questa directory:
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config
dove [prefix] è la directory del prefisso npm.
Scopri dove
se è installato Edge Microgateway.
plugins/<plugin_name>/config/default.yaml. Ad esempio, puoi inserire questo
blocco in plugins/spikearrest/config/default.yaml, che sostituiranno qualsiasi
e altre impostazioni di configurazione.
spikearrest: timeUnit: hour allow: 10000 buffersize: 0
Usare il plug-in di arresto dei picchi
Questa sezione illustra il plug-in di arresto dei picchi.
Informazioni sull'arresto dei picchi
L'arresto spike protegge dai picchi di traffico. Limita il numero di richieste elaborate su un'istanza Edge Microgateway. Per ulteriori informazioni, vedi Come funziona l'arresto dei picchi? Consulta anche Qual è differenza tra l'arresto dei picchi e la quota?.
Aggiunta del plug-in di arresto dei picchi
Per la procedura di base da seguire per ogni plug-in, consulta l'articolo Aggiunta e configurazione di plug-in.
Configurazione di esempio per arresto dei picchi
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10 bufferSize: 5
Opzioni di configurazione per arresto dei picchi
- timeUnit: la frequenza con cui viene reimpostata la finestra di esecuzione dell'arresto dei picchi. Valori validi sono il secondo o il minuto.
- allow: il numero massimo di richieste da consentire durante il valore timeUnit.
- bufferSize: (facoltativo, valore predefinito = 0) se bufferSize > 0, picco di arresto memorizza questo numero di richieste in un buffer. Non appena viene visualizzata la "finestra" di esecuzione successiva si verifica, le richieste presenti nel buffer verranno elaborate per prime. Vedi anche Aggiunta un buffer.
Come funziona l'arresto dei picchi?
L'arresto dei picchi è un modo per proteggersi in generale dai picchi di traffico e non come un per limitare il traffico a un numero specifico di richieste. Le tue API e il tuo backend possono gestire quantità di traffico e il criterio di arresto dei picchi ti aiuta a ridurre il traffico verso gli importi generali desiderato.
Il comportamento di arresto del picco di runtime è diverso da ciò che ci si potrebbe aspettare di vedere nel al minuto o al secondo inseriti.
Ad esempio, supponi di specificare una frequenza di 30 richieste al minuto, come segue:
spikearrest: timeUnit: minute allow: 30
Durante il test, potresti pensare di poter inviare 30 richieste in un secondo, a condizione che vengano inviate entro un minuto. Tuttavia, l'impostazione non viene applicata in questo modo. Se ci pensi, 30 richieste entro un periodo di 1 secondo potrebbe essere considerato un piccolo picco in alcuni ambienti.
Che cosa succede effettivamente, allora? Per prevenire comportamenti simili a picchi, l'arresto dei picchi agevola le dividendo le impostazioni in intervalli più piccoli, come segue:
Tariffe al minuto
Le tariffe al minuto vengono semplificate in intervalli di secondi consentiti per le richieste. Ad esempio, 30 di richieste al minuto vengono semplificate in questo modo:
60 secondi (1 minuto) / 30 = intervalli di 2 secondi o circa 1 richiesta ogni 2 secondi. R una seconda richiesta entro 2 secondi non andrà a buon fine. Inoltre, la 31a richiesta entro un minuto non andrà a buon fine.
Tariffe al secondo
Le frequenze al secondo vengono semplificate nelle richieste consentite in intervalli di millisecondi. Ad esempio: 10 richieste al secondo vengono semplificate in questo modo:
1000 millisecondi (1 secondo) / 10 = intervalli di 100 millisecondi o circa 1 richiesta consentita ogni 100 millisecondi . Una seconda richiesta entro 100 ms avrà esito negativo. Inoltre, un'undicesima richiesta al secondo non riesce.
Quando viene superato il limite
Se il numero di richieste supera il limite entro l'intervallo di tempo specificato, avviso di picco restituisce questo messaggio di errore con stato HTTP 503:
{"error": "spike arrest policy violated"}Aggiunta di un buffer
Hai la possibilità di aggiungere un buffer al criterio. Supponiamo che tu abbia impostato il buffer su 10. Quando superi l'arresto dei picchi, l'API non restituisce subito un errore limite. Le richieste vengono invece memorizzate nel buffer (fino al numero specificato) e le richieste memorizzate nel buffer elaborati non appena è disponibile la successiva finestra di esecuzione appropriata. La Il valore predefinito di bufferSize è 0.
Utilizzare il plug-in della quota
Questa sezione illustra il plug-in della quota.
Informazioni sul plug-in della quota
Una quota specifica il numero di messaggi di richiesta che un'app è autorizzata a inviare a un'API nel corso di un'ora, un giorno, una settimana o un mese. Quando un'app raggiunge il limite di quota, le successive Le chiamate API vengono rifiutate. Consulta anche Qual è la differenza tra arresto e quota di picco?
Aggiunta del plug-in della quota
Per la procedura di base da seguire per ogni plug-in, consulta l'articolo Aggiunta e configurazione di plug-in.
Configurazione dei prodotti in Apigee Dispositivi periferici
Puoi configurare le quote nella UI di Apigee Edge in cui configuri i prodotti API. Devi sapere che contiene il proxy microgateway-aware che vuoi limitare con una quota. Questo a un'app sviluppatore. Quando effettui chiamate API autenticate utilizzando nell'app per sviluppatori, la quota verrà applicata a queste chiamate API.
- Accedi al tuo account organizzazione Apigee Edge.
- Nella UI di Edge, apri il prodotto associato al proxy microgateway-aware a cui
a cui vuoi applicare la quota.
- Nella UI, seleziona Prodotti dal menu Pubblica.
- Apri il prodotto contenente l'API a cui vuoi applicare la quota.
- Fai clic su Modifica.
- Specifica l'intervallo di quota nel campo Quota. Ad esempio, 100 richieste ogni
un minuto. Oppure 50.000 richieste ogni 2 ore.

- Fai clic su Salva.
- Assicurati che il prodotto sia aggiunto a un'app sviluppatore. Ti serviranno le chiavi di questa app per effettuare di chiamate API autenticate.
Configurazione di esempio per la quota
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - quota
Opzioni di configurazione per la quota
Non ci sono opzioni di configurazione aggiuntive per il plug-in della quota.
Test del plug-in della quota
Quando la quota viene superata, viene restituito al client lo stato HTTP 403, insieme messaggio seguente:
{"error": "exceeded quota"}Qual è la differenza tra l'arresto dei picchi e la quota?
È importante scegliere lo strumento giusto per il lavoro da svolgere. Configurazione dei criteri per le quote Il numero di messaggi di richiesta che un'app client è autorizzata a inviare a un'API nel corso del corso di un'ora, un giorno, una settimana o un mese. Il criterio per le quote applica i limiti di consumo sulle app client e mantenere un contatore distribuito che rilevi le richieste in entrata.
Utilizza un criterio per le quote per applicare contratti aziendali o SLA (accordi sul livello del servizio) con sviluppatori e partner, anziché che per la gestione operativa del traffico. Ad esempio, una quota potrebbe essere utilizzata per limitare il traffico un servizio senza costi, pur consentendo l'accesso completo ai clienti paganti. Vedi anche Utilizzo del plug-in della quota.
Utilizza l'arresto dei picchi per proteggerti da picchi improvvisi nel traffico delle API. Di solito, l'arresto dei picchi utilizzate per contrastare possibili attacchi DDoS o altri attacchi dannosi.