Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Edge Microgateway v. 2.4.x
Panoramica
Questo argomento spiega come gestire e configurare Edge Microgateway, incluso il monitoraggio, il logging e il debug.
Apportare modifiche alla configurazione
I file di configurazione che devi conoscere includono:
- File di configurazione di sistema predefinito
- File di configurazione predefinito per un'istanza di Edge Microgateway appena inizializzata
- File di configurazione dinamico per le istanze in esecuzione
Questa sezione descrive questi file e cosa devi sapere per modificarli. Per i dettagli sulle impostazioni del file di configurazione, consulta Riferimento alla configurazione di Edge Microgateway.
File di configurazione predefinita del sistema
Quando installi Edge Microgateway, qui viene inserito un file di configurazione di sistema predefinito:
[prefix]/lib/node_modules/edgemicro/config/default.yaml
dove [prefix] è la directory del prefisso npm.
Consulta Dove
è installato Edge Microgateway.
Se modifichi il file di configurazione del sistema, devi reinizializzare, riconfigurare e riavviare Edge Microgateway:
- Chiama
edgemicro init - Chiama
edgemicro configure [params] - Chiama
edgemicro start [params]
File di configurazione predefinito per le istanze di Edge Microgateway appena inizializzate
Quando esegui edgemicro init, il file di configurazione del sistema
(descritto sopra), default.yaml, viene inserito in questa directory:
~/.edgemicro
Se modifichi il file di configurazione in ~/.edgemicro, devi riconfigurare e riavviare
Edge Microgateway:
edgemicro stopedgemicro configure[params]edgemicro start[params]
File di configurazione dinamica per le istanze in esecuzione
Quando esegui edgemicro configure [params], viene creato un file di configurazione dinamico in ~/.edgemicro. Il file viene denominato in base a questo pattern: [org]-[env]-config.yaml, dove org e env sono i nomi dell'organizzazione e dell'ambiente Apigee Edge. Puoi utilizzare questo file per apportare modifiche alla configurazione e poi ricaricarle
senza tempi di inattività. Ad esempio, se aggiungi e configuri un plug-in, puoi ricaricare la
configurazione senza tempi di inattività, come spiegato di seguito.
Se Edge Microgateway è in esecuzione (opzione senza tempi di inattività):
- Ricarica la configurazione di Edge Microgateway:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
Dove:
orgè il nome della tua organizzazione Edge (devi essere un amministratore dell'organizzazione).envè un ambiente della tua organizzazione (ad esempio test o produzione).keyè la chiave restituita in precedenza dal comando configure.secretè la chiave restituita in precedenza dal comando configure.
Esempio
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
Se Edge Microgateway è arrestato:
- Riavvia Edge Microgateway:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
Dove:
orgè il nome della tua organizzazione Edge (devi essere un amministratore dell'organizzazione).envè un ambiente della tua organizzazione (ad esempio test o produzione).keyè la chiave restituita in precedenza dal comando configure.secretè la chiave restituita in precedenza dal comando configure.
Esempio
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
Ecco un file di configurazione di esempio. Per i dettagli sulle impostazioni del file di configurazione, consulta Riferimento alla configurazione di Edge Microgateway.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
Imposta le variabili di ambiente
I comandi dell'interfaccia a riga di comando che richiedono valori per l'organizzazione e l'ambiente Edge, nonché la chiave e il secret necessari per avviare Edge Microgateway, possono essere archiviati in queste variabili di ambiente:
EDGEMICRO_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_SECRET
L'impostazione di queste variabili è facoltativa. Se li imposti, non devi specificarne i valori quando utilizzi l'interfaccia a riga di comando (CLI) per configurare e avviare Edge Microgateway.
Configurazione di SSL sul server Edge Microgateway
Puoi configurare il server Microgateway per l'utilizzo di SSL. Ad esempio, con SSL configurato, puoi chiamare le API tramite Edge Microgateway con il protocollo "https", in questo modo:
https://localhost:8000/myapi
Per configurare SSL sul server Microgateway, segui questi passaggi:
- Genera o ottieni un certificato e una chiave SSL utilizzando l'utilità openssl o il metodo che preferisci.
- Aggiungi l'attributo
edgemicro:sslal file di configurazione di Edge Microgateway. Per un elenco completo delle opzioni, consulta la tabella seguente. Per informazioni dettagliate sulla modifica della configurazione di Edge Microgateway, consulta Apportare modifiche alla configurazione. Ad esempio:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true - Riavvia Edge Microgateway. Segui i passaggi descritti in Apportare modifiche alla configurazione a seconda del file di configurazione che hai modificato: il file predefinito o il file di configurazione di runtime.
Ecco un esempio della sezione edgemicro del file di configurazione, con SSL configurato:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
Di seguito è riportato un elenco di tutte le opzioni del server supportate:
| Opzione | Descrizione |
|---|---|
key |
Percorso di un file ca.key (in formato PEM). |
cert |
Percorso di un file ca.cert (in formato PEM). |
pfx |
Percorso di un file pfx contenente la chiave privata, il certificato e i certificati CA del client in formato PFX. |
passphrase |
Una stringa contenente la passphrase per la chiave privata o il file PFX. |
ca |
Percorso di un file contenente un elenco di certificati attendibili in formato PEM. |
ciphers |
Una stringa che descrive le cifrature da utilizzare separate da ":". |
rejectUnauthorized |
Se è true, il certificato del server viene verificato rispetto all'elenco delle CA fornite. Se la verifica non va a buon fine, viene restituito un errore. |
secureProtocol |
Il metodo SSL da utilizzare. Ad esempio, SSLv3_method per forzare SSL alla versione 3. |
servername |
Il nome del server per l'estensione TLS SNI (Server Name Indication). |
requestCert |
true per SSL bidirezionale; false per SSL unidirezionale |
Utilizzo delle opzioni SSL/TLS del client
Puoi configurare Edge Microgateway in modo che sia un client TLS o SSL quando si connette agli endpoint di destinazione. Nel file di configurazione di Microgateway, utilizza l'elemento targets per impostare le opzioni SSL/TLS.
Questo esempio fornisce le impostazioni che verranno applicate a tutti gli host:
targets:
ssl:
client:
key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueIn questo esempio, le impostazioni vengono applicate solo all'host specificato:
targets:
host: 'myserver.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueEcco un esempio per TLS:
targets:
host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueDi seguito è riportato un elenco di tutte le opzioni client supportate:
| Opzione | Descrizione |
|---|---|
pfx |
Percorso di un file pfx contenente la chiave privata, il certificato e i certificati CA del client in formato PFX. |
key |
Percorso di un file ca.key (in formato PEM). |
passphrase |
Una stringa contenente la passphrase per la chiave privata o il file PFX. |
cert |
Percorso di un file ca.cert (in formato PEM). |
ca |
Percorso di un file contenente un elenco di certificati attendibili in formato PEM. |
ciphers |
Una stringa che descrive le cifrature da utilizzare separate da ":". |
rejectUnauthorized |
Se è true, il certificato del server viene verificato rispetto all'elenco delle CA fornite. Se la verifica non va a buon fine, viene restituito un errore. |
secureProtocol |
Il metodo SSL da utilizzare. Ad esempio, SSLv3_method per forzare SSL alla versione 3. |
servername |
Il nome del server per l'estensione TLS SNI (Server Name Indication). |
Personalizzazione del proxy edgemicro-auth
Per impostazione predefinita, Edge Microgateway utilizza un proxy di cui è stato eseguito il deployment su Apigee Edge per l'autenticazione OAuth2.
Questo proxy viene implementato quando esegui inizialmente edgemicro configure. Puoi
modificare la configurazione predefinita di questo proxy per aggiungere il supporto delle attestazioni personalizzate a un token web JSON (JWT), configurare la scadenza del token e generare token di aggiornamento. Per maggiori dettagli, consulta la pagina edgemicro-auth su GitHub.
Utilizzo di un servizio di autenticazione personalizzato
Per impostazione predefinita, Edge Microgateway utilizza un proxy di cui è stato eseguito il deployment su Apigee Edge per l'autenticazione OAuth2.
Questo proxy viene implementato quando esegui inizialmente edgemicro configure. Per impostazione predefinita,
l'URL di questo proxy è specificato nel file di configurazione di Edge Microgateway come segue:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
Se vuoi utilizzare un servizio personalizzato per gestire l'autenticazione, modifica
il valore authUri nel file di configurazione in modo che punti al tuo servizio. Ad
esempio, potresti avere un servizio che utilizza LDAP per verificare l'identità.
Gestione dei file di log
Edge Microgateway registra informazioni su ogni richiesta e risposta. I file di log forniscono informazioni utili per il debug e la risoluzione dei problemi.
Dove vengono archiviati i file di log
Per impostazione predefinita, i file di log vengono archiviati in /var/tmp.
Come modificare la directory predefinita dei file di log
La directory in cui vengono archiviati i file di log è specificata nel file di configurazione di Edge Microgateway. Per informazioni dettagliate su come apportare modifiche alla configurazione, vedi Apportare modifiche alla configurazione.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Modifica il valore di dir per specificare una directory diversa per i file di log.
Inviare log alla console
Puoi configurare la registrazione in modo che le informazioni di log vengano inviate all'output standard anziché a un file di log. Imposta il flag to_console su true come segue:
edgemicro:
logging:
to_console: true Con questa impostazione, i log verranno inviati all'output standard. Al momento non puoi inviare log sia a stdout sia a un file di log.
Come impostare il livello di logging
Puoi impostare i seguenti livelli di log: info, warn e error. Si consiglia il livello INFO. Registra tutte le richieste e le risposte API ed è l'impostazione predefinita.
Come modificare gli intervalli dei log
Puoi configurare questi intervalli nel file di configurazione di Edge Microgateway. Per informazioni dettagliate su come apportare modifiche alla configurazione, consulta Apportare modifiche alla configurazione.
Gli attributi configurabili sono:
- stats_log_interval: (impostazione predefinita: 60) Intervallo, in secondi, in cui il record delle statistiche viene scritto nel file di log dell'API.
- rotate_interval: (impostazione predefinita: 24) intervallo, in ore, in cui i file di log vengono ruotati. Ad esempio:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Nota: i file di log archiviati non vengono compressi. Quando inizia l'intervallo, viene creato un nuovo file di log con un nuovo timestamp.
Buone pratiche di manutenzione dei file di log
Man mano che i dati dei file di log si accumulano nel tempo, Apigee consiglia di adottare le seguenti pratiche:
- Poiché i file di log possono diventare piuttosto grandi, assicurati che la directory dei file di log disponga di spazio sufficiente. Consulta le sezioni Dove sono archiviati i file di log e Come modificare la directory predefinita dei file di log.
- Elimina o sposta i file di log in una directory di archivio separata almeno una volta alla settimana.
- Se la tua norma prevede l'eliminazione dei log, puoi utilizzare il comando CLI
edgemicro log -cper rimuovere (pulire) i log meno recenti.
Convenzione di denominazione dei file di log
Ogni istanza di Edge Microgateway produce tre tipi di file di log:
- api: registra tutte le richieste e le risposte che passano attraverso Edge Microgateway. In questo file vengono registrati anche i contatori (statistiche) e gli errori delle API.
- err: registra tutto ciò che viene inviato a stderr.
- out: registra tutto ciò che viene inviato a stdout.
Ecco la convenzione di denominazione:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
Ad esempio:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
Informazioni sui contenuti del file di log
Aggiunto nella versione: 2.3.3
Per impostazione predefinita, il servizio di logging omette il JSON dei proxy, dei prodotti e del token web JSON (JWT) scaricati. Se vuoi inviare questi oggetti ai file di log, imposta
DEBUG=* quando avvii Edge Microgateway. Ad esempio:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
Nota: su Windows, utilizza SET DEBUG=*
Contenuti del file di log "api"
Il file di log "api" contiene informazioni dettagliate sul flusso di richieste e risposte tramite Edge Microgateway. I file di log "api" hanno questo nome:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Per ogni richiesta effettuata a Edge Microgateway, vengono acquisiti quattro eventi nel file di log "api":
- Richiesta in arrivo dal cliente
- Richiesta in uscita inviata al target
- Risposta in arrivo dal target
- Risposta in uscita al client
Ciascuna di queste voci separate è rappresentata in una notazione abbreviata per rendere i file di log più compatti. Ecco quattro voci di esempio che rappresentano ciascuno dei quattro eventi. Nel file di log hanno questo aspetto (i numeri di riga sono solo di riferimento nel documento, non vengono visualizzati nel file di log).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
Vediamoli uno alla volta:
1. Esempio di richiesta in arrivo dal cliente:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651: timestamp Unix
- info: dipende dal contesto. Può essere info, warn o error, a seconda del livello di log. Può essere stats per un record di statistiche, warn per gli avvisi o error per gli errori.
- req: identifica l'evento. In questo caso, la richiesta del client.
- m: il verbo HTTP utilizzato nella richiesta.
- u: la parte dell'URL che segue il percorso di base.
- h: l'host e il numero di porta su cui Edge Microgateway è in ascolto.
- r: l'host remoto e la porta da cui ha avuto origine la richiesta del client.
- i: l'ID richiesta. Tutte e quattro le voci dell'evento condivideranno questo ID. A ogni richiesta viene assegnato un ID univoco. La correlazione dei record di log per ID richiesta può fornire informazioni preziose sulla latenza della destinazione.
- d: la durata in millisecondi dal momento in cui la richiesta è stata ricevuta da Edge Microgateway. Nell'esempio precedente, la risposta della destinazione alla richiesta 0 è stata ricevuta dopo 7 millisecondi (riga 3) e la risposta è stata inviata al client dopo altri 4 millisecondi (riga 4). In altre parole, la latenza totale della richiesta è stata di 11 millisecondi, di cui 7 millisecondi sono stati impiegati dal target e 4 millisecondi da Edge Microgateway.
2. Esempio di richiesta in uscita effettuata alla destinazione:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651: timestamp Unix
- info: dipende dal contesto. Può essere info, warn o error, a seconda del livello di log. Può essere stats per un record di statistiche, warn per gli avvisi o error per gli errori.
- treq: identifica l'evento. In questo caso, la richiesta di destinazione.
- m: il verbo HTTP utilizzato nella richiesta di destinazione.
- u: la parte dell'URL che segue il percorso di base.
- h: l'host e il numero di porta del target di backend.
- i: l'ID della voce di log. Tutte e quattro le voci dell'evento condivideranno questo ID.
3. Esempio di risposta in entrata dal target
1436403888672 info tres s=200, d=7, i=0
1436403888651: timestamp Unix
- info: dipende dal contesto. Può essere info, warn o error, a seconda del livello di log. Può essere stats per un record di statistiche, warn per gli avvisi o error per gli errori.
- tres: identifica l'evento. In questo caso, la risposta di destinazione.
- s: lo stato della risposta HTTP.
- d: la durata in millisecondi. Il tempo impiegato per la chiamata API dalla destinazione.
- i: l'ID della voce di log. Tutte e quattro le voci dell'evento condivideranno questo ID.
4. Esempio di risposta in uscita al cliente
1436403888676 info res s=200, d=11, i=0
1436403888651: timestamp Unix
- info: dipende dal contesto. Può essere info, warn o error, a seconda del livello di log. Può essere stats per un record di statistiche, warn per gli avvisi o error per gli errori.
- res: identifica l'evento. In questo caso, la risposta al client.
- s: lo stato della risposta HTTP.
- d: la durata in millisecondi. Questo è il tempo totale impiegato dalla chiamata API, incluso il tempo impiegato dall'API di destinazione e il tempo impiegato da Edge Microgateway stesso.
- i: l'ID della voce di log. Tutte e quattro le voci dell'evento condivideranno questo ID.
Pianificazione dei file di log
I file di log vengono ruotati all'intervallo specificato dall' attributo di configurazione rotate_interval. Le voci continueranno a essere aggiunte allo stesso file di log fino alla scadenza dell'intervallo di rotazione. Tuttavia, ogni volta che Edge Microgateway viene riavviato, riceve un nuovo UID e crea un nuovo insieme di file di log con questo UID. Vedi anche Buone pratiche per la manutenzione dei file di log.
Riferimento alla configurazione di Edge Microgateway
Posizione del file di configurazione
Gli attributi di configurazione descritti in questa sezione si trovano nel file di configurazione di Edge Microgateway. Per informazioni dettagliate su come apportare modifiche alla configurazione, vedi Apportare modifiche alla configurazione.
Attributi edge_config
Queste impostazioni vengono utilizzate per configurare l'interazione tra l'istanza di Edge Microgateway e Apigee Edge.
- bootstrap: (impostazione predefinita: nessuno) Un URL che punta a un servizio specifico di Edge
Microgateway in esecuzione su Apigee Edge. Edge Microgateway utilizza questo servizio per
comunicare con Apigee Edge. Questo URL viene restituito quando esegui il comando per generare la
coppia di chiavi pubblica/privata:
edgemicro genkeys. Per maggiori dettagli, consulta la sezione Configurazione di Edge Microgateway. - jwt_public_key: (impostazione predefinita: nessuno) Un URL che rimanda al proxy Edge Microgateway distribuito su Apigee Edge. Questo proxy funge da endpoint di autenticazione per l'emissione di token di accesso firmati ai client. Questo URL viene restituito quando esegui il comando per eseguire il deployment del proxy: edgemicro configure. Per maggiori dettagli, consulta la sezione Configurazione di Edge Microgateway.
attributi edgemicro
Queste impostazioni configurano il processo Edge Microgateway.
- port: (valore predefinito: 8000) il numero di porta su cui il processo Edge Microgateway è in ascolto.
- max_connections: (impostazione predefinita: -1) Specifica il numero massimo di
connessioni in entrata simultanee che Edge Microgateway può ricevere. Se questo numero viene
superato, viene restituito il seguente stato:
res.statusCode = 429; // Too many requests
- max_connections_hard: (impostazione predefinita: -1) Il numero massimo di richieste simultanee che Edge Microgateway può ricevere prima di chiudere la connessione. Questa impostazione è pensata per contrastare gli attacchi di tipo denial of service. In genere, impostalo su un numero maggiore di max_connections.
-
logging:
-
level: (predefinito: error)
- info: registra tutte le richieste e le risposte che passano attraverso un'istanza di Edge Microgateway.
- warn: registra solo i messaggi di avviso.
- error: registra solo i messaggi di errore.
- dir: (impostazione predefinita: /var/tmp) la directory in cui sono memorizzati i file di log.
- stats_log_interval: (impostazione predefinita: 60) intervallo, in secondi, in cui il record delle statistiche viene scritto nel file di log dell'API.
- rotate_interval: (impostazione predefinita: 24) intervallo, in ore, in cui i file di log vengono ruotati.
-
level: (predefinito: error)
- plug-in: i plug-in aggiungono funzionalità a Edge Microgateway. Per maggiori dettagli sullo sviluppo di plug-in, vedi Sviluppare plug-in personalizzati.
- dir: un percorso relativo dalla directory ./gateway alla directory ./plugins o un percorso assoluto.
- sequence: un elenco di moduli plug-in da aggiungere all'istanza Edge Microgateway. I moduli verranno eseguiti nell'ordine in cui sono specificati qui.
-
debug: aggiunge il debug remoto al processo Edge Microgateway.
- port: il numero di porta su cui rimanere in ascolto. Ad esempio, imposta il debugger dell'IDE in modo che sia in ascolto su questa porta.
- args: argomenti per il processo di debug. Ad esempio:
args --nolazy
- config_change_poll_interval: (impostazione predefinita: 600 secondi) Edge Microgateway
carica periodicamente una nuova configurazione ed esegue un ricaricamento se qualcosa è cambiato. Il polling
rileva le modifiche apportate a Edge (modifiche a prodotti, proxy compatibili con microgateway e così via) e
le modifiche apportate al file di configurazione locale.
- disable_config_poll_interval: (valore predefinito: false) imposta su true per disattivare il polling automatico delle modifiche.
- request_timeout: imposta un timeout per le richieste di target. Il timeout è impostato in secondi. Se si verifica un timeout, Edge Microgateway risponde con un codice di stato 504. (Aggiunto nella versione 2.4.x)
attributi delle intestazioni
Queste impostazioni configurano il modo in cui vengono trattate determinate intestazioni HTTP.
- x-forwarded-for: (valore predefinito: true) imposta su false per impedire il passaggio delle intestazioni x-forwarded-for alla destinazione. Tieni presente che se nella richiesta è presente un'intestazione x-forwarded-for, il relativo valore verrà impostato sul valore client-ip in Edge Analytics.
- x-forwarded-host: (valore predefinito: true) imposta su false per impedire il passaggio delle intestazioni x-forwarded-host alla destinazione.
- x-request-id: (valore predefinito: true) imposta il valore su false per impedire il passaggio delle intestazioni x-request-id alla destinazione.
- x-response-time: (valore predefinito: true) imposta il valore su false per impedire il passaggio delle intestazioni x-response-time alla destinazione.
- via: (impostazione predefinita: true) imposta il valore su false per impedire il passaggio delle intestazioni via alla destinazione.
attributi oauth
Queste impostazioni configurano la modalità di applicazione dell'autenticazione client da parte di Edge Microgateway.
- allowNoAuthorization: (impostazione predefinita: false) se impostato su true, le chiamate API possono passare attraverso Edge Microgateway senza alcuna intestazione di autorizzazione. Imposta questo valore su false per richiedere un'intestazione Authorization (valore predefinito).
- allowInvalidAuthorization: (impostazione predefinita: false) se impostato su true, le chiamate API possono essere eseguite se il token passato nell'intestazione Authorization non è valido o è scaduto. Imposta questo valore su false per richiedere token validi (impostazione predefinita).
- authorization-header: (impostazione predefinita: Authorization: Bearer) L'intestazione utilizzata per inviare il token di accesso a Edge Microgateway. Ti consigliamo di modificare l'impostazione predefinita nei casi in cui la destinazione deve utilizzare l'intestazione Authorization per un altro scopo.
- api-key-header: (impostazione predefinita: x-api-key) Il nome dell'intestazione o del parametro di query utilizzato per passare una chiave API a Edge Microgateway. Vedi anche Utilizzo di una chiave API.
- keepAuthHeader: (impostazione predefinita: false) se impostato su true, l'intestazione Authorization inviata nella richiesta viene trasmessa alla destinazione (viene conservata).
- allowOAuthOnly: se impostato su true, ogni API deve includere un'intestazione Authorization con un token di accesso Bearer. Consente di autorizzare solo il modello di sicurezza OAuth (mantenendo la compatibilità con le versioni precedenti). (Aggiunto in 4.2.x)
- allowAPIKeyOnly: se impostato su true, ogni API deve includere un'intestazione x-api-key (o una posizione personalizzata) con una chiave API.Consente di consentire solo il modello di sicurezza della chiave API (mantenendo la compatibilità con le versioni precedenti). (Aggiunto nella versione 4.2.x)
Attributi specifici del plug-in
Consulta la sezione Utilizzo dei plug-in per informazioni dettagliate sugli attributi configurabili per ciascun plug-in.
Filtro dei proxy
Puoi filtrare i proxy compatibili con microgateway che un'istanza di Edge Microgateway elaborerà.
Quando Edge Microgateway viene avviato, scarica tutti i proxy compatibili con il microgateway nell'organizzazione a cui è associato. Utilizza la seguente configurazione per limitare i proxy che
microgateway elaborerà. Ad esempio, questa configurazione limita a tre i proxy che il microgateway
elaborerà: edgemicro_proxy-1, edgemicro_proxy-2
e edgemicro_proxy-3:
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Mascheramento dei dati di analisi
La seguente configurazione impedisce la visualizzazione delle informazioni sul percorso della richiesta in Edge Analytics. Aggiungi quanto segue alla configurazione di microgateway per mascherare l'URI della richiesta e/o il percorso della richiesta. Tieni presente che l'URI è composto dalle parti del nome host e del percorso della richiesta.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
Configurazione di Edge Microgateway dietro un firewall aziendale
Supporto della versione 4.2.x
Se Edge Microgateway è installato dietro un firewall, il gateway potrebbe non essere in grado di comunicare con Apigee Edge. In questo caso, puoi prendere in considerazione due opzioni:
Opzione 1:
La prima opzione è impostare l'opzione edgemicro: proxy_tunnel su true nel file di configurazione di microgateway:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: trueQuando proxy_tunnel è true, Edge Microgateway utilizza il metodo HTTP CONNECT per eseguire il tunneling delle richieste HTTP su una singola connessione TCP. Lo stesso vale se le variabili di ambiente per la configurazione del proxy sono abilitate per TLS.
Opzione 2:
La seconda opzione è specificare un proxy e impostare proxy_tunnel su false nel file di configurazione di microgateway. Ad esempio:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: falseIn questo caso, puoi impostare le seguenti variabili per controllare gli host per ogni proxy HTTP che vuoi utilizzare o quali host non devono gestire i proxy Edge Microgateway: HTTP_PROXY, HTTPS_PROXY e NO_PROXY.
Puoi impostare NO_PROXY come elenco di domini separati da virgole a cui Edge Microgateway non deve inviare proxy. Ad esempio:
export NO_PROXY='localhost,localhost:8080'
Imposta HTTP_PROXY e HTTPS_PROXY sull'endpoint proxy HTTP a cui Edge Microgateway può inviare messaggi. Ad esempio:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
Per ulteriori informazioni su queste variabili, consulta:
https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
Vedi anche
How to set up Edge Microgateway behind a company firewall nella community Apigee.
Utilizzo di caratteri jolly nei proxy compatibili con Microgateway
Puoi utilizzare uno o più caratteri jolly "*" nel percorso di base di
un proxy edgemicro_* (compatibile con Microgateway). Ad esempio, un percorso di base
/team/*/members consente ai client di
chiamare https://[host]/team/blue/members e https://[host]/team/green/members senza
che tu debba creare nuovi proxy API per supportare nuovi team. Tieni presente che /**/ non è supportato.
Importante: Apigee NON supporta l'utilizzo di un carattere jolly "*" come
primo elemento di un percorso di base. Ad esempio, questa opzione NON
è supportata: ricerca /*/.
Debug e risoluzione dei problemi
Connessione a un debugger
Puoi eseguire Edge Microgateway con un debugger, ad esempio node-inspector. Questo è utile per la risoluzione dei problemi e il debug dei plug-in personalizzati.
- Riavvia Edge Microgateway in modalità di debug. Per farlo, aggiungi
DEBUG=*all'inizio del comando di avvio. Ad esempio:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
Nota:su Windows, utilizza
SET DEBUG=* - Avvia il debugger e impostalo in modo che ascolti il numero di porta per il processo di debug.
- Ora puoi scorrere il codice di Edge Microgateway, impostare punti di interruzione, osservare le espressioni e così via.
Puoi specificare i flag Node.js standard relativi alla modalità di debug. Ad esempio,
--nolazy aiuta a eseguire il debug del codice asincrono.
Controllare i file di log
Se riscontri problemi, assicurati di esaminare i file di log per i dettagli di esecuzione e le informazioni sugli errori. Per maggiori dettagli, vedi Gestire i file di log.
Utilizzo della sicurezza delle chiavi API
Le chiavi API forniscono un meccanismo semplice per autenticare i client che effettuano richieste a Edge Microgateway. Puoi ottenere una chiave API copiando il valore della chiave consumer (chiamata anche ID client) da un prodotto Apigee Edge che include il proxy di autenticazione Edge Microgateway.
Memorizzazione nella cache delle chiavi
Le chiavi API vengono scambiate con token di autenticazione, che vengono memorizzati nella cache. Puoi disattivare la memorizzazione nella cache impostando
l'intestazione Cache-Control: no-cache nelle richieste in entrata a Edge
Microgateway.
Utilizzo della sicurezza dei token OAuth2
Per informazioni dettagliate sull'utilizzo di un token OAuth con le richieste proxy, vedi Proteggere Edge Microgateway.
Utilizzo di una chiave API
Per informazioni dettagliate sull'utilizzo delle chiavi API con le richieste proxy, consulta Proteggere Edge Microgateway.
Configurazione del nome della chiave API
Per impostazione predefinita, x-api-key è il nome utilizzato per l'intestazione o il parametro di query della chiave API. Puoi modificare questo valore predefinito nel file di configurazione, come spiegato in Modificare la configurazione. Ad esempio, per modificare il nome in apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey