Riferimento per le operazioni e la configurazione di Edge Microgateway

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

Microgateway Edge v. 2.4.x

Panoramica

Questo argomento illustra come gestire e configurare Edge Microgateway, inclusi monitoraggio, logging e debug.

Apportare modifiche alla configurazione

I file di configurazione che devi conoscere includono:

  • File di configurazione di sistema predefinita
  • File di configurazione predefinito per un'istanza Edge Microgateway appena inizializzata
  • File di configurazione dinamica per l'esecuzione delle istanze

Questa sezione illustra questi file e cosa devi sapere per modificarli. Per maggiori dettagli sulle impostazioni del file di configurazione, consulta il riferimento per la configurazione di Edge Microgateway.

File di configurazione di sistema predefinita

Quando installi Edge Microgateway, un file di configurazione di sistema predefinito viene inserito qui:

[prefix]/lib/node_modules/edgemicro/config/default.yaml

dove [prefix] è la directory del prefisso npm. Vedi Dove è installato Edge Microgateway.

Se modifichi il file di configurazione di sistema, devi reinizializzare, riconfigurare e riavviare Edge Microgateway:

  1. Chiama edgemicro init
  2. Chiama edgemicro configure [params]
  3. Chiama edgemicro start [params]

File di configurazione predefinito per le istanze Edge Microgateway appena inizializzate

Quando esegui edgemicro init, il file di configurazione di 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:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

File di configurazione dinamica per l'esecuzione delle istanze

Quando esegui edgemicro configure [params], viene creato un file di configurazione dinamica in ~/.edgemicro. Il file è 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, quindi ricaricarle senza tempo di inattività. Ad esempio, se aggiungi e configuri un plug-in, puoi ricaricare la configurazione senza causare tempi di inattività, come spiegato di seguito.

Se Edge Microgateway è in esecuzione (opzione senza tempo di inattività):

  1. Ricarica la configurazione del Microgateway Edge:
    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 di test o di 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:

  1. 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 di test o di 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 maggiori dettagli sulle impostazioni del file di configurazione, consulta il riferimento per la 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 l'avvio di Edge Microgateway, possono essere archiviati in queste variabili di ambiente:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

L'impostazione di queste variabili è facoltativa. Se le 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 in modo che utilizzi SSL. Ad esempio, se è configurato SSL, puoi chiamare le API tramite Edge Microgateway con il protocollo "https", in questo modo:

https://localhost:8000/myapi

Per configurare SSL sul server Microgateway, procedi nel seguente modo:

  1. Genera o ottieni un certificato e una chiave SSL utilizzando l'utilità openssl o il metodo che preferisci.
  2. Aggiungi l'attributo edgemicro:ssl al file di configurazione del Microgateway Edge. Per un elenco completo delle opzioni, consulta la tabella seguente. Per maggiori dettagli sulla modifica della configurazione di Edge Microgateway, vedi 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 
    
  3. Riavvia Edge Microgateway. Segui i passaggi descritti in Apportare modifiche alla configurazione a seconda del file di configurazione modificato: il file predefinito o il file di configurazione del runtime.

Ecco un esempio della sezione edgemicro del file di configurazione, con la configurazione SSL:

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 di 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 PFX.
ca Percorso di un file contenente un elenco di certificati attendibili in formato PEM.
ciphers Una stringa che descrive le crittografie da utilizzare separate da ":".
rejectUnauthorized Se il valore è true, il certificato del server viene verificato in base all'elenco di 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 a due vie; false per SSL unidirezionale

Utilizzo delle opzioni SSL/TLS del client

Puoi configurare Edge Microgateway come client TLS o SSL durante la connessione agli endpoint di destinazione. Nel file di configurazione del microgateway, utilizza l'elemento target 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: true

In 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: true

Ecco un esempio per TLS:

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

Di 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 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 crittografie da utilizzare separate da ":".
rejectUnauthorized Se il valore è true, il certificato del server viene verificato in base all'elenco di 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 di autenticazione perimetrale

Per impostazione predefinita, Edge Microgateway utilizza un proxy di cui è stato eseguito il deployment su Apigee Edge per l'autenticazione OAuth2. Il deployment di questo proxy è stato eseguito quando esegui la prima volta edgemicro configure. Puoi modificare la configurazione predefinita di questo proxy per aggiungere il supporto per le attestazioni personalizzate a un token JWT (JSON Web Token), configurare la scadenza dei token e generare token di aggiornamento. Per maggiori dettagli, consulta la pagina edgemicro-auth in 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. Il deployment di questo proxy è stato eseguito quando esegui la prima volta 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 rimandi al tuo servizio. Ad esempio, potresti avere un servizio che utilizza LDAP per verificare l'identità.

Gestione dei file di log

Edge Microgateway registra le informazioni relative a 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 sono archiviati in /var/tmp.

Come modificare la directory predefinita del file di log

La directory in cui sono archiviati i file di log è specificata nel file di configurazione Edge Microgateway. Per maggiori dettagli 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 dir per specificare una directory del file di log diversa.

Invia i log alla console

Puoi configurare il logging in modo che le informazioni di log vengano inviate a un 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'esterno 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: informazioni, avviso ed errore. Il livello di informazione è consigliato. 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 maggiori dettagli su come apportare modifiche alla configurazione, consulta Apportare modifiche alla configurazione.

Gli attributi configurabili sono:

  • stats_log_interval: (valore predefinito: 60) intervallo, in secondi, in cui il record delle statistiche viene scritto nel file di log dell'API.
  • rotate_interval: (valore predefinito: 24): intervallo, in ore, durante la rotazione dei file di log. 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. All'inizio dell'intervallo, viene creato un nuovo file di log con un nuovo timestamp.

Buone prassi 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 molto grandi, assicurati che la directory del file di log disponga di spazio sufficiente. Consulta le seguenti sezioni Dove vengono 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 archiviazione separata almeno una volta alla settimana.
  • Se il criterio prevede l'eliminazione dei log, puoi utilizzare il comando dell'interfaccia a riga di comando edgemicro log -c per rimuovere (ripulire) i log meno recenti.

Convenzione di denominazione dei file di log

Ogni istanza Edge Microgateway produce tre tipi di file di log:

  • api: registra tutte le richieste e risposte che passano attraverso Edge Microgateway. In questo file vengono registrati anche gli errori e i contatori (statistiche) dell'API.
  • err: registra tutto ciò che viene inviato a stderr.
  • out: registra tutto ciò che viene inviato a stdout.

Questa è 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 dei file di log

Aggiunto in: v2.3.3

Per impostazione predefinita, il servizio di logging omette il JSON dei proxy scaricati, dei prodotti e del token JWT (JSON Web Token). Se vuoi generare questi oggetti nei file di log, imposta DEBUG=* all'avvio di 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 attraverso Edge Microgateway. I file di log "api" hanno il seguente 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 client
  • Richiesta in uscita effettuata alla destinazione
  • Risposta in arrivo dal target
  • Risposta in uscita per il client

Ognuna di queste voci separate è rappresentata in una notazione abbreviata per aiutare a rendere i file di log più compatti. Ecco quattro voci di esempio che rappresentano ciascuno dei quattro eventi. Nel file di log, avranno il seguente aspetto (i numeri di riga sono solo come riferimento nel documento, non compaiono 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

Vediamole una per una:

1. Esempio di richiesta in entrata dal client:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Indicatore data Unix
  • informazioni: dipendono dal contesto. Può trattarsi di informazioni, avvisi o errori, a seconda del livello di log. Può trattarsi di statistiche per un record di statistiche, avvisi per avvisi o errori per errori.
  • req: identifica l'evento. In questo caso, richiedi una richiesta del client.
  • m: il verbo HTTP utilizzato nella richiesta.
  • u: la parte dell'URL che segue il percorso 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 della richiesta. Le quattro voci dell'evento condivideranno questo ID. A ogni richiesta viene assegnato un ID richiesta univoco. La correlazione dei record di log per ID richiesta può fornire insight preziosi sulla latenza della destinazione.
  • d: la durata in millisecondi da quando la richiesta è stata ricevuta da Edge Microgateway. Nell'esempio precedente, la risposta del target per la 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 delle richieste è stata di 11 millisecondi, di cui 7 millisecondi sono stati ricavati dal target e 4 millisecondi dallo stesso Edge Microgateway.

2. Esempio di richiesta in uscita inviata alla destinazione:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Indicatore data Unix
  • informazioni: dipendono dal contesto. Può trattarsi di informazioni, avvisi o errori, a seconda del livello di log. Può trattarsi di statistiche per un record di statistiche, avvisi per avvisi o errori per errori.
  • treq: identifica l'evento. In questo caso, target request.
  • m: il verbo HTTP utilizzato nella richiesta di destinazione.
  • u: la parte dell'URL che segue il percorso base.
  • h: l'host e il numero di porta della destinazione del backend.
  • i: l'ID della voce di log. Le quattro voci evento condivideranno questo ID.

3. Esempio di risposta in arrivo dal target

1436403888672 info tres s=200, d=7, i=0

1436403888651 - Indicatore data Unix

  • informazioni: dipendono dal contesto. Può trattarsi di informazioni, avvisi o errori, a seconda del livello di log. Può trattarsi di statistiche per un record di statistiche, avvisi per avvisi o errori per errori.
  • tres: identifica l'evento. In questo caso, risposta target.
  • s: lo stato della risposta HTTP.
  • d - La durata in millisecondi. Il tempo impiegato dal target per la chiamata API.
  • i: l'ID della voce di log. Le quattro voci evento condivideranno questo ID.

4. Esempio di risposta in uscita al client

1436403888676 info res s=200, d=11, i=0

1436403888651 - Indicatore data Unix

  • informazioni: dipendono dal contesto. Può trattarsi di informazioni, avvisi o errori, a seconda del livello di log. Può trattarsi di statistiche per un record di statistiche, avvisi per avvisi o errori per 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, che include il tempo impiegato dall'API target e quello impiegato da Edge Microgateway stesso.
  • i: l'ID della voce di log. Le quattro voci evento condivideranno questo ID.

Pianificazione del file di log

I file di log vengono ruotati in base 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 set di file di log con questo UID. Vedi anche Buone prassi di manutenzione dei file di log.

Riferimento per la configurazione di Microgateway Edge

Percorso del file di configurazione

Gli attributi di configurazione descritti in questa sezione si trovano nel file di configurazione di Edge Microgateway. Per maggiori dettagli 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 Edge Microgateway e Apigee Edge.

  • bootstrap: (predefinito: nessuno) un URL che rimanda a un servizio specifico del Microgateway Edge 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 Configurazione e configurazione di Edge Microgateway.
  • jwt_public_key: (predefinito: nessuno) un URL che rimanda al proxy Edge Microgateway di cui è stato eseguito il deployment 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 Configurazione e configurazione di Edge Microgateway.

Attributi edgemicro

Queste impostazioni configurano il processo Edge Microgateway.

  • port: (predefinito: 8000) il numero di porta su cui il processo Edge Microgateway è in ascolto.
  • max_connections: (predefinito: -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: (predefinito: -1) il numero massimo di richieste simultanee che Edge Microgateway può ricevere prima di arrestare la connessione. Questa impostazione ha lo scopo di impedire gli attacchi denial of service. In genere, impostalo su un numero maggiore di max_connections.
  • :
    • level: (predefinito: errore)
      • informazioni: registra tutte le richieste e le risposte che passano attraverso un'istanza 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 vengono archiviati i file di log.
    • stats_log_interval: (valore predefinito: 60): intervallo, in secondi, durante il quale il record delle statistiche viene scritto nel file di log dell'API.
    • rotate_interval: (valore predefinito: 24): intervallo, in ore, durante la rotazione dei file di log.
  • plug-in: i plug-in aggiungono funzionalità a Edge Microgateway. Per maggiori dettagli sullo sviluppo di plug-in, consulta la pagina relativa allo sviluppo di plug-in personalizzati.
  • dir: un percorso relativo dalla directory ./gateway alla directory ./plugins o un percorso assoluto.
  • Sequenza: un elenco di moduli plug-in da aggiungere all'istanza Edge Microgateway. I moduli verranno eseguiti nell'ordine specificato qui.
  • debug: aggiunge il debug remoto al processo Edge Microgateway.
    • porta: il numero di porta su cui rimanere in ascolto. Ad esempio, imposta il debugger IDE per l'ascolto su questa porta.
    • args: argomenti del processo di debug. Ad esempio: args --nolazy
  • config_change_poll_interval: (valore predefinito: 600 secondi) Edge Microgateway carica periodicamente una nuova configurazione ed esegue un ricaricamento in caso di modifiche. Il polling rileva tutte le modifiche apportate su Edge (modifiche ai prodotti, ai proxy sensibili al microgateway e così via) e alle modifiche apportate al file di configurazione locale.
  • disable_config_poll_interval: (impostazione predefinita: false) Imposta su true per disattivare il polling automatico delle modifiche.
  • request_timeout: imposta un timeout per le richieste di destinazione. Il timeout è impostato in secondi. Se si verifica un timeout, Edge Microgateway risponde con un codice di stato 504. (Aggiunta v2.4.x)

attributi header

Queste impostazioni configurano il modo in cui vengono trattate determinate intestazioni HTTP.

  • x-forwarded-for: (valore predefinito: true) impostato su false per impedire il passaggio delle intestazioni x-forwarded-for alla destinazione. Tieni presente che, se la richiesta contiene un'intestazione x-forwarded-for, il relativo valore verrà impostato sul valore client-ip in Edge Analytics.
  • x-forwarded-host: (valore predefinito: true) impostato su false per impedire il passaggio delle intestazioni x-forwarded-host alla destinazione.
  • x-request-id: (valore predefinito: true) impostalo su false per impedire il trasferimento delle intestazioni x-request-id alla destinazione.
  • x-response-time: (valore predefinito: true) impostato su false per impedire il passaggio delle intestazioni x-response-time al target.
  • via: (predefinito: true) viene impostato su false per impedire il trasferimento tramite intestazioni alla destinazione.

Attributi OAuth

Queste impostazioni configurano il modo in cui l'autenticazione client viene applicata da Edge Microgateway.

  • allowNoAuthorization: (predefinito: false) se viene impostato su true, le chiamate API possono passare attraverso Edge Microgateway senza alcuna intestazione Authorization. Impostalo su false per richiedere un'intestazione di autorizzazione (impostazione predefinita).
  • allowInvalidAuthorization: (valore predefinito: false) se impostato su true, le chiamate API possono essere trasmesse se il token trasmesso nell'intestazione Authorization non è valido o è scaduto. Impostalo su false per richiedere token validi (impostazione predefinita).
  • permission-header: (predefinito: Authorization: Bearer) l'intestazione utilizzata per inviare il token di accesso a Edge Microgateway. Puoi modificare l'impostazione predefinita nei casi in cui la destinazione debba utilizzare l'intestazione Authorization per altri scopi.
  • api-key-header: (predefinito: 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 è impostata su true, l'intestazione Authorization inviata nella richiesta viene trasmessa alla destinazione (viene conservata).
  • allowOAuthOnly: se è impostato su true, ogni API deve avere un'intestazione Authorization con un token di accesso di connessione. Consente di autorizzare solo il modello di sicurezza OAuth (mantenendo la compatibilità con le versioni precedenti). (4.2.x aggiunta)
  • allowAPIKeyOnly: se è impostata su true, ogni API deve avere un'intestazione x-api-key (o una località personalizzata) con una chiave API.Consente di autorizzare solo il modello di sicurezza della chiave API, mantenendo la compatibilità con le versioni precedenti. (Aggiunta 4.2.x)

Attributi specifici dei plug-in

Per informazioni dettagliate sugli attributi configurabili per ciascun plug-in, consulta la sezione Utilizzo dei plug-in.

Filtro proxy

Puoi filtrare i proxy con rilevamento del microgateway che verranno elaborati da un'istanza Edge Microgateway. All'avvio, Edge Microgateway scarica tutti i proxy con accesso sensibile al gateway nell'organizzazione a cui è associato. Utilizza la configurazione seguente per limitare i proxy che verranno elaborati dal microgateway. Ad esempio, questa configurazione limita a tre i proxy che verranno elaborati dal microgateway: 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 configurazione seguente impedisce la visualizzazione delle informazioni sul percorso della richiesta nell'analisi Edge. Aggiungi quanto segue alla configurazione del microgateway per mascherare l'URI della richiesta e/o il percorso della richiesta. Tieni presente che l'URI è costituito 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 protetto da un firewall aziendale

Versione 4.2.x supportata

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 del microgateway:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

Quando 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 consiste nello specificare un proxy e impostare proxy_tunnel su false nel file di configurazione del microgateway. Ad esempio:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

In questo caso, puoi impostare le seguenti variabili per controllare gli host per ogni proxy HTTP che intendi utilizzare oppure quali host non devono gestire i proxy Edge Microgateway: HTTP_PROXY, HTTPS_PROXY e NO_PROXY.

Puoi impostare NO_PROXY come elenco delimitato da virgole di domini a cui Edge Microgateway non deve effettuare il proxy. Ad esempio:

export NO_PROXY='localhost,localhost:8080'

Imposta HTTP_PROXY e HTTPS_PROXY sull'endpoint del proxy HTTP che 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

Come configurare Edge Microgateway dietro un firewall aziendale nella community Apigee.

Utilizzo di caratteri jolly nei proxy sensibili al Microgateway

Puoi utilizzare uno o più caratteri jolly "*" nel percorso di base di un proxy edgemicro_* (microgateway-aware). 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 dover creare nuovi proxy API per supportare i 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, NON è supportata la ricerca di /*/.


Debug e risoluzione dei problemi

Connessione a un debugger

Puoi eseguire Edge Microgateway con un debugger, come node-inspector. Ciò è utile per la risoluzione dei problemi e il debug dei plug-in personalizzati.

  1. Riavvia Edge Microgateway in modalità di debug. Per farlo, aggiungi DEBUG=* all'inizio del comando start. Ad esempio:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    Nota: su Windows, utilizza SET DEBUG=*

  2. Avvia il debugger e impostalo per l'ascolto sul numero di porta per il processo di debug.
  3. Ora puoi esaminare il codice Edge Microgateway, impostare punti di interruzione, espressioni di controllo 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.

Controllo dei file di log

In caso di problemi, assicurati di esaminare i file di log per trovare dettagli sull'esecuzione e informazioni sugli errori. Per maggiori dettagli, vedi Gestione dei file di log.

Utilizzare la sicurezza delle chiavi API

Le chiavi API offrono un meccanismo semplice per autenticare i client che effettuano richieste a Edge Microgateway. Puoi ottenere una chiave API copiando il valore della chiave utente (detto anche ID client) da un prodotto Apigee Edge che include il proxy di autenticazione Edge Microgateway.

Memorizzazione nella cache dei tasti

Le chiavi API vengono scambiate con i token di connessione, che vengono memorizzati nella cache. Puoi disabilitare la memorizzazione nella cache impostando l'intestazione Cache-Control: no-cache sulle richieste in entrata a Edge Microgateway.

Utilizzo della sicurezza del token OAuth2

Per maggiori dettagli sull'utilizzo di un token OAuth con le richieste proxy, vedi Secure Edge Microgateway.

Utilizzo di una chiave API

Per maggiori dettagli sull'utilizzo delle chiavi API con le richieste proxy, vedi Secure Edge Microgateway.

Configurare il nome della chiave API

Per impostazione predefinita, x-api-key è il nome utilizzato per l'intestazione della chiave API o il parametro di query. Puoi modificare questa impostazione predefinita nel file di configurazione, come spiegato in Apportare modifiche alla configurazione. Ad esempio, per cambiare il nome in apiKey:

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey