Utilizzo del debug

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questa sezione descrive come creare e gestire le sessioni di debug e visualizzare i dati di richiesta e risposta utilizzando l'API e l'interfaccia utente di Apigee.

Utilizza il debug offline per visualizzare e analizzare le sessioni di debug scaricate in precedenza.

Creazione di una sessione di debug

Lo strumento di debug è semplice da usare. Avvia una sessione di debug, poi effettua una chiamata API ad Apigee e visualizza i dati di richiesta e risposta nell'interfaccia utente.

Crea una sessione di debug utilizzando l'API o l'interfaccia utente di Apigee come descritto nelle seguenti sezioni.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Per creare una sessione di debug:

  1. Accedi alla console Google Cloud.
  2. Seleziona Sviluppo proxy > Proxy API.
  3. Seleziona il proxy API di cui vuoi eseguire il debug. Viene visualizzato il riquadro Panoramica di Proxy Editor.
  4. Fai clic sulla scheda Debug.
  5. Fai clic su Avvia sessione di debug. Viene visualizzato il riquadro Avvia sessione di debug.
  6. Nel riquadro Avvia sessione di debug:

    1. Seleziona l'ambiente in cui vuoi eseguire la sessione di debug.
    2. (Facoltativo) Nell'elenco a discesa Filtro, seleziona un filtro da applicare a tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None (All transactions), che include tutte le transazioni nei dati di debug.

      Per informazioni sull'utilizzo dei filtri, consulta Utilizzare i filtri in una sessione di debug. Per informazioni sui filtri integrati, consulta Utilizzare i filtri predefiniti.

    3. Fai clic su Avvia.

L'interfaccia utente di Apigee ora mostra il riquadro Sessione di debug in corso.

Fai clic per visualizzare l'immagine ingrandita nuova sessione di debug

La sessione di debug registra le richieste per 10 minuti o fino a quando non sono state acquisite 15 richieste. Puoi modificare il limite di 10 minuti se crei la sessione di debug utilizzando l'API. Il campo Termina entro mostra il tempo rimanente nella sessione.

Non verranno visualizzate informazioni nel riquadro di debug finché non invii una richiesta al proxy di cui stai eseguendo il debug nell'ambiente selezionato per la sessione di debug.

Una volta inviata, la richiesta viene visualizzata nel riquadro dell'elenco Transazioni. L'elenco Transazioni viene aggiornato ogni cinque secondi.

Fai clic per visualizzare l'immagine ingrandita richiesta nell'elenco delle transazioni

Debug v1

Per creare una sessione di debug nel nuovo editor proxy:

  1. Accedi alla console Google Cloud.
  2. Seleziona Sviluppo proxy > Proxy API.

  3. Seleziona il proxy API di cui vuoi eseguire il debug. Viene visualizzata la visualizzazione Panoramica dell'editor proxy.

  4. Fai clic sulla scheda Debug in alto a sinistra nella finestra.
  5. Fai clic su Avvia sessione di debug in alto a destra nel riquadro Debug. Viene visualizzata la finestra di dialogo Avvia sessione di debug.

    Finestra di dialogo Avvia sessione di debug.

    Nella finestra di dialogo:

    1. Seleziona l'ambiente in cui vuoi eseguire la sessione di debug.
    2. (Facoltativo) Nell'elenco a discesa Filtro, seleziona un filtro da applicare a tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None (All transactions), che include tutte le transazioni nei dati di debug.

      Per informazioni sull'utilizzo dei filtri, vedi Utilizzare i filtri in una sessione di debug. Per informazioni sui filtri integrati, consulta Utilizzare i filtri predefiniti.

    3. Fai clic su Avvia.

L'interfaccia utente di Apigee ora mostra la visualizzazione Sessione di debug in corso.

Sessione di debug in corso

La sessione di debug registra le richieste per 10 minuti o fino a quando non sono state acquisite 15 richieste. Puoi modificare il limite di 10 minuti se crei la sessione di debug utilizzando l'API. Il campo Termina entro mostra il tempo rimanente nella sessione.

Non verranno visualizzate informazioni nel riquadro di debug finché non invii una richiesta al proxy di cui stai eseguendo il debug nell'ambiente selezionato. per la sessione di debug.

Una volta inviata, la richiesta viene visualizzata nella parte inferiore del riquadro a sinistra.

Finestra di dialogo Avvia sessione di debug.

Nota:durante una sessione di debug attiva, puoi avviarne un'altra nell'UI di Apigee. Per farlo, fai di nuovo clic su Avvia sessione di debug.

Interfaccia utente classica

Per creare una sessione di debug nell'editor proxy classico:

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona Proxy API dalla visualizzazione principale.
  3. Seleziona il proxy API di cui vuoi eseguire il debug.

    Viene visualizzata la scheda Panoramica.

  4. Fai clic sulla scheda Debug in alto a destra nella pagina:

    Schede

    Nella visualizzazione Debug vengono visualizzati:

    Visualizzazione di debug con i riquadri Avvia una sessione di debug, Sessioni di debug recenti e Invia richieste

  5. Nel riquadro Avvia una sessione di debug:
    1. Dall'elenco a discesa Env (Ambiente), seleziona l'ambiente + il numero di revisione del proxy API che vuoi eseguire il debug.
    2. L'esempio seguente mostra il riquadro Avvia una sessione di debug:

      Avviare un riquadro della sessione di debug

    3. (Facoltativo) Nell'elenco a discesa Filtro, seleziona un filtro da applicare a tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None, che include tutte le transazioni nei dati di debug.

      Per informazioni sull'utilizzo dei filtri, vedi Utilizzare i filtri in una sessione di debug. Per informazioni sui filtri integrati, consulta Utilizzare i filtri predefiniti.

    4. Fai clic su Avvia sessione di debug.

      L'interfaccia utente di Apigee ora mostra i dettagli della sessione di debug corrente, incluso il relativo ID, nel riquadro Dettagli di debug.

      Anche se l'interfaccia utente ha creato la sessione di debug, devi comunque inviare la richiesta prima che siano disponibili dati da raccogliere.

      Nel riquadro Dettagli di debug, puoi:

      Icona Funzione Descrizione
      Icona Scarica Scarica Scarica i dati di debug della sessione attiva, che potrai poi visualizzare offline.
      Icona di ritorno Restituisci il dispositivo Torna al riquadro precedente, dove puoi avviare un'altra sessione di debug. La sessione di debug corrente continua fino a quando non raggiunge il timeout o il conteggio delle transazioni.
      Icona Elimina Elimina Elimina i dati della sessione di debug attualmente selezionata. In questo modo vengono eliminati i dati della sessione, ma le sessioni non vengono interrotte.

      Esiste un limite di timeout predefinito di 10 minuti per una sessione di debug avviata nell'interfaccia utente (è diverso per una sessione avviata con l'API).

      Il timer inizia a funzionare non appena fai clic su Avvia sessione di debug, quindi puoi scegliere di attendere fino al passaggio successivo prima di fare clic su Avvia sessione di debug per massimizzare la quantità di dati raccolti.

  6. Nel riquadro Invia richieste:
    1. Nel campo URL, inserisci l'endpoint a cui vuoi inviare una richiesta. Se vuoi, aggiungi i parametri della stringa di query all'URL. Non puoi inviare richieste diverse da GET.
      Come trovare l'URL dell'endpoint
      1. Vai ad Amministrazione > Ambienti > Gruppi.
      2. L'URL è il nome host del rispettivo ambiente in cui vuoi eseguire la sessione di debug.
    2. Il riquadro Invia richieste mostra solo i dati relativi alle richieste basate sull'interfaccia utente. Tieni presente, tuttavia, che il debug registra anche i dati per le richieste che non sono state avviate dall'interfaccia utente.

    3. Fai clic su Invia.

      Apigee invia una richiesta all'URL specificato. Ogni volta che fai clic su Invia, la UI di Apigee registra la richiesta nel riquadro Dettagli di debug.

      L'esempio seguente mostra diverse richieste riuscite (che generano un codice di stato HTTP di 200):

      Richieste di debug acquisite

      Fai clic su Copia per copiare l'ID di debug per riferimento futuro o query.

      Inoltre, l'interfaccia utente mostra i dati di debug nelle sezioni della mappa delle transazioni e dei dettagli della fase del riquadro Invia richieste e compila le sezioni Endpoint proxy, Intestazioni richiesta, Contenuto richiesta e Proprietà, come mostrato nell'esempio seguente:

      Richieste di debug acquisite

      Per ulteriori informazioni sulle fasi, sulla mappa delle transazioni e su altre sezioni della visualizzazione Invia richieste, consulta Come leggere un debug.

    La sessione di debug è ora attiva e registra i dati relativi a tutte le richieste (a meno che non vengano escluse). La sessione rimarrà attiva fino al raggiungimento del timeout o al superamento del numero di richieste registrate nella sessione.

  7. Puoi creare un numero illimitato di sessioni di debug nell'interfaccia utente. Per ulteriori informazioni, consulta Avvio di un'altra sessione di debug.

API

Per creare una sessione di debug utilizzando l'API, invia una richiesta POST alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

In via facoltativa, puoi:

L'esempio seguente mostra come creare una sessione di debug utilizzando l'API.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
      -X POST \
      -H "Authorization: Bearer $TOKEN"
    

Dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste all'API Apigee.

Di seguito è riportato un esempio di risposta:

{
      "name":"56382416-c4ed-4242-6381-591bbf2788cf",
      "validity":300,
      "count":10,
      "tracesize":5120,
      "timeout":"600"
    }

Le richieste successive al proxy API (fino a quando non viene raggiunta la durata della sessione o il numero massimo di richieste) verranno valutate e potenzialmente memorizzate nei dati della sessione di debug.

Per ulteriori informazioni, consulta l'API Create debug session.

Impostazione della durata di una sessione di debug utilizzando l'API

Per impostare la durata di una sessione di debug utilizzando l'API, includi quanto segue come payload nella richiesta di creazione della sessione di debug:

{
      "timeout":"debug_session_length_in_seconds"
    }

L'esempio seguente crea una sessione di debug di soli 42 secondi:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
      -X "POST" \
      -H "Authorization: Bearer $TOKEN" \
      -d ' {
        "timeout":"42"
      } '

Puoi impostare timeout di una sessione solo nelle richieste di creazione della sessione di debug. Non puoi modificare la durata di una sessione dopo averla creata.

Il valore predefinito di timeout è 300 (5 minuti). Il valore massimo è 600 secondi (10 minuti).

Copia l'URL del proxy

L'URL del proxy viene utilizzato per inviare richieste al proxy API.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Per trovare e copiare l'URL del proxy:

  1. Nel riquadro Sessione di debug, campo URL, fai clic su Copia.
  2. Se non è aperta una sessione di debug:
    1. Nella console Google Cloud, vai a Gestione > Ambienti > Gruppi di ambienti.
    2. L'URL è il nome host del rispettivo ambiente con cui vuoi eseguire la sessione di debug. Selezionalo e poi copialo.

Per selezionare un URL proxy diverso:

  1. Nel riquadro Sessione di debug, campo URL, fai clic su Modifica.
  2. Apporta le modifiche necessarie e fai clic su Aggiorna.
  3. Se non è aperta una sessione di debug:
    1. Trova l'URL del proxy.
    2. Fai clic su Altro, quindi su Modifica.
    3. Apporta le modifiche necessarie e fai clic su Aggiorna.

Debug v1

Per trovare e copiare l'URL del proxy:

  1. Nella console Google Cloud, vai a Gestione > Ambienti > Gruppi di ambienti.
  2. L'URL è il nome host del rispettivo ambiente con cui vuoi eseguire la sessione di debug. Selezionalo e poi copialo.

Per modificare l'URL del proxy:

  1. Trova l'URL del proxy.
  2. Fai clic su Altro, quindi su Modifica.
  3. Apporta le modifiche necessarie e fai clic su Aggiorna.

Interfaccia utente classica

Per trovare e copiare l'URL dell'endpoint:

  1. Nell'interfaccia utente di Apigee, vai ad Amministrazione > Ambienti > Gruppi. Verrà aperta la pagina Gestione > Gruppi di ambienti > Ambienti della console Google Cloud.
  2. L'URL è il nome host del rispettivo ambiente in cui vuoi eseguire la sessione di debug. Selezionalo e poi copialo.

Per modificare l'URL target:

  1. Trova l'URL dell'endpoint.
  2. Fai clic su Altro, quindi su Modifica.
  3. Apporta le modifiche necessarie e fai clic su Aggiorna.

Avvio di un'altra sessione di debug nell'interfaccia utente

Puoi creare un numero illimitato di sessioni di debug nell'interfaccia utente.

Interfaccia utente di Cloud Console

Durante una sessione di debug attiva, puoi avviarne un'altra nell'UI di Apigee. Per farlo, fai clic su Chiudi nel riquadro Sessione di debug:

Fai clic per visualizzare un'immagine più grande Chiudi e torna al riquadro Avvia una sessione di debug

L'interfaccia utente torna al riquadro Avvia una nuova sessione di debug, dove puoi avviare una nuova sessione di debug.

Interfaccia utente classica

Durante una sessione di debug attiva, puoi avviarne un'altra nell'UI di Apigee. Per farlo, fai clic sull'icona a forma di freccia Indietro () nel riquadro Dettagli di debug:

Freccia Indietro che ti riporta al riquadro Avvia una sessione di debug

L'interfaccia utente torna al riquadro Avvia una nuova sessione di debug, dove puoi avviare una nuova sessione di debug.

Quando termina una sessione di debug?

Non puoi semplicemente interrompere una sessione di debug attiva. Tuttavia, puoi eliminare i dati di una sessione attiva, come descritto in Eliminare i dati della sessione di debug.

Quando crei una sessione di debug, due proprietà ne determinano la fine:

  • timeout:il periodo di tempo per cui raccogli i dati durante una sessione. La durata predefinita dipende dal modo in cui hai avviato la sessione (tramite l'interfaccia utente o l'API). Il valore massimo è 600 secondi (o 10 minuti).
  • count: il numero massimo di richieste registrate in una singola sessione per Message Processor. Poiché il numero di processori di messaggi nella maggior parte dei cluster è variabile, gli effetti del conteggio possono essere imprevedibili. Apigee non consiglia di personalizzare questa impostazione.

Quando viene raggiunto il timeout o il conteggio, la sessione di debug per il relativo elaboratore di messaggi termina.

I seguenti termini vengono utilizzati per descrivere lo stato di una sessione di debug:

  • La sessione attiva è una sessione di debug che non ha ancora raggiunto il timeout o superato il conteggio. Una sessione attiva continua a registrare i dati delle richieste che non vengono escluse.
  • Una sessione completata è una sessione di debug che ha raggiunto il timeout o superato il conteggio. Una sessione completata non registra più i dati sulle nuove richieste e i relativi dati vengono eliminati entro 24 ore dal termine della sessione.

Come leggere una sessione di debug

Questa sezione fornisce una panoramica di una sessione di debug.

Vedi anche:

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Lo strumento di debug è composto da due parti principali: il riquadro delle transazioni e i dettagli della fase:

  • Il riquadro delle transazioni utilizza icone per contrassegnare ogni passaggio importante che si verifica durante una transazione proxy dell'API, tra cui l'esecuzione dei criteri, i passaggi condizionali e le transizioni. Passa il mouse sopra qualsiasi icona per visualizzare le informazioni di riepilogo. I passaggi del flusso di richiesta vengono visualizzati nella parte superiore della mappa delle transazioni e i passaggi del flusso di risposta nella parte inferiore.
  • Il riquadro Dettagli fase elenca le informazioni sull'elaborazione interna del proxy, tra cui le variabili impostate o lette, le intestazioni di richiesta e risposta e molto altro ancora. Fai clic su un'icona per visualizzare i dettagli della fase per quel passaggio.

Debug v1

Questa versione dello strumento di debug utilizza un grafico di Gantt per visualizzare i passaggi della richiesta e della risposta.

Interfaccia utente classica

Lo strumento di debug è composto da due parti principali: la mappa delle transazioni e i dettagli della fase:

  • La mappa delle transazioni utilizza icone per contrassegnare ogni passaggio significativo che si verifica durante una transazione proxy dell'API, inclusa l'esecuzione dei criteri, i passaggi condizionali e le transizioni. Passa il mouse sopra qualsiasi icona per visualizzare le informazioni di riepilogo. I passaggi del flusso di richiesta vengono visualizzati nella parte superiore della mappa delle transazioni e i passaggi del flusso di risposta nella parte inferiore.
  • La sezione Dettagli fase dello strumento elenca informazioni sull'elaborazione interna del proxy, tra cui le variabili impostate o lette, le intestazioni di richiesta e risposta e molto altro ancora. Fai clic su un'icona per visualizzare i dettagli della fase per quel passaggio.

Riquadro Transazioni

Il riquadro della transazione mostra i passaggi nella richiesta e nella risposta.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Di seguito è riportato un riquadro delle transazioni dello strumento di debug di esempio con i segmenti di elaborazione del proxy principale etichettati:

Fai clic per visualizzare un'immagine più grande Diagramma di debug che mostra la richiesta di inizio del proxy per iniziare la richiesta di destinazione per iniziare la risposta di destinazione per iniziare la risposta del proxy per iniziare il flusso del client post-proxy

Debug v1

Per visualizzare i dettagli di una transazione (richiesta e risposta) nella visualizzazione di debug, fai clic sulla riga della transazione per visualizzare un grafico di Gantt nel riquadro a destra che mostra i passaggi della richiesta e della risposta.

Grafico di Gantt dei passaggi della transazione nel riquadro a destra.

L'asse orizzontale del diagramma indica i tempi in cui si è verificato ogni passaggio, misurati in millisecondi. Ogni passaggio è rappresentato da un rettangolo che si estende dall'ora di inizio all'ora di fine del passaggio.

Puoi eseguire la procedura passo passo di una sessione di debug utilizzando i pulsanti Indietro e Avanti in basso a destra nel riquadro di debug. Fai clic su:

  • Indietro per spostare la riga selezionata al passaggio precedente del grafico.
  • Avanti per spostare la riga selezionata al passaggio successivo del grafico.

Nell'esempio riportato sopra, il grafico mostra due criteri che vengono eseguiti nella risposta:

  • ResponsePayload
  • Aggiungere CORS

Puoi fare clic su uno di questi passaggi per visualizzarne i dettagli. Ad esempio, se fai clic sul criterio Aggiungi CORS, accanto al grafico di Gantt vengono visualizzati dettagli come quelli riportati di seguito.

Aggiungi i dettagli del criterio CORS.

Se poi decidi di modificare qualcosa nella configurazione delle norme, puoi fare clic su Sviluppa per passare alla visualizzazione Sviluppa, dove vedrai le stesse due norme nel flusso post-risposta.

Visualizzazione della scheda Sviluppa in relazione a una sessione di debug.

Interfaccia utente classica

Ecco una mappa di esempio dello strumento di debug con i segmenti di elaborazione del proxy principali etichettati:

Mappa delle transazioni dello strumento di debug

Diagramma di debug che mostra la richiesta di inizio del proxy per iniziare la richiesta di destinazione per iniziare la risposta di destinazione per iniziare la risposta del proxy per iniziare il flusso del client post-proxy

Legenda riquadro Transazioni

Di seguito sono descritte le icone nel riquadro delle transazioni:

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Questa sezione descrive le icone nel riquadro delle transazioni:

Icone dei criteri

Ogni tipo di criterio ha un'icona univoca. Queste icone ti consentono di vedere dove vengono eseguiti i criteri nell'ordine corretto e se l'esecuzione è riuscita o meno. Puoi fare clic sull'icona di una norma per visualizzare i risultati della sua esecuzione e se sono previsti o meno. Ad esempio, puoi vedere se il messaggio è stato trasformato correttamente o se è memorizzato nella cache.

I criteri standard potenziano le tue API per controllare il traffico, migliorare le prestazioni, applicare la sicurezza e aumentare l'utilità delle tue API, senza che tu debba scrivere codice o modificare i servizi di backend.

I criteri estensibili ti consentono di aggiungere logica personalizzata ai proxy API. Puoi utilizzare queste norme per aggiungere funzionalità non fornite dalle norme standard.

Per ulteriori informazioni sulle norme e sulle categorie, consulta la Panoramica di riferimento delle norme.

Per filtrare la tabella:

  • Seleziona un tipo di criterio e/o una categoria di criteri.
  • Fai clic sull'intestazione della colonna Nome per ordinare la tabella in base al nome del criterio.
  • Digita una parola chiave per cercare il nome di un criterio.

Tipo di criterio

Categoria norma

Icona Nome Tipo Categoria
manage_search Norme relative a ParseDialogflowRequest Estensibile Dialog flow
chat_add_on Norme di SetDialogflowResponse Estensibile Dialog flow
stacked_line_chart Norme di DataCapture Estensibile Estensione
display_external_input Norme relative a ExternalCallout Standard Estensione
flowsheet Norme relative a FlowCallout Estensibile Estensione
automazione Criterio IntegrationCallout Estensibile Estensione
Icona del criterio JavaCallout Norme di JavaCallout Estensibile Estensione
Icona delle norme JavaScript Norme JavaScript Estensibile Estensione
add_notes Norme di MessageLogging Estensibile Estensione
chat_paste_go Norme relative a PublishMessage Standard Estensione
Icona criterio PythonScript Norme di PythonScript Estensibile Estensione
integration_instructions Norme di ServiceCallout Estensibile Estensione
automazione Criterio SetIntegrationRequest Estensibile Estensione
waterfall_chart Norme di TraceCapture Estensibile Estensione
cloud_done Criteri AccessEntity Estensibile Mediazione
account_tree Norme relative ad AsserCondition Standard Mediazione
edit_square Norme di AssignMessage Estensibile Mediazione
login Norme relative a ExtractVariables Estensibile Mediazione
Icona delle norme GraphQL Norme GraphQL Standard Mediazione
sync_alt Norme di HTTPModifier Standard Mediazione
sync_alt Norma JSONtoXML Standard Mediazione
account_tree Norme relative a KeyValueMapOperations Estensibile Mediazione
sync_alt Norme relative a MonetizationLimitsCheck Estensibile Mediazione
cloud_done Norme di OASValidation Standard Mediazione
report Criterio RaiseFault Standard Mediazione
sync_alt Norme relative a ReadPropertySet Standard Mediazione
cloud_done Norme relative a SOAPMessageValidation Standard Mediazione
sync_alt Norme di XMLtoJSON Standard Mediazione
cloud_done Criterio XSLTransform Estensibile Mediazione
lock Criterio di controllo dell'accesso Standard Sicurezza
sicurezza Criterio BasicAuthentication Estensibile Sicurezza
connect_without_contact Criterio CORS Standard Sicurezza
lock Norme di DecodeJWS Estensibile Sicurezza
lock Criterio DecodeJWT Standard Sicurezza
passkey Criterio DeleteOAuthV2Info Estensibile Sicurezza
lock Criterio GenerateSamlAssertion Estensibile Sicurezza
lock Norme di GenerateJWS Estensibile Sicurezza
lock Criteri GenerateJWT Estensibile Sicurezza
passkey Norme relative a GetOAuthV2Info Estensibile Sicurezza
lock Norme HMAC Standard Sicurezza
sicurezza Norme di JSONThreatProtection Estensibile Sicurezza
passkey Norme OAuthV2 Estensibile Sicurezza
sicurezza Norme relative a RegularExpressionProtection Estensibile Sicurezza
passkey Norme di RevokeOAuthV2 Estensibile Sicurezza
passkey Norme relative a SetOAuthV2Info Estensibile Sicurezza
lock Criterio ValidateSamlAssertion Estensibile Sicurezza
chiave Norme relative a VerifyAPIKey Estensibile Sicurezza
passkey VerifyIAM policy Estensibile Sicurezza
lock Norme di VerifyJWS Estensibile Sicurezza
lock Norme di VerifyJWT Standard Sicurezza
sicurezza Norme di XMLThreatProtection Estensibile Sicurezza
cached Criterio InvalidateCache Estensibile Gestione del traffico
cached Norme relative a LookupCache Estensibile Gestione del traffico
cached Norme relative a PopulateCache Estensibile Gestione del traffico
bar_chart_4_bars Criteri per le quote Estensibile Gestione del traffico
repartition Criteri per ResetQuota Estensibile Gestione del traffico
cached Norme di ResponseCache Estensibile Gestione del traffico
emergency_home Criterio SpikeArrest Standard Gestione del traffico

Altre icone

La tabella seguente descrive lo scopo delle altre icone che vedrai nel riquadro delle transazioni. Queste icone contrassegnano ciascuno dei passaggi di elaborazione significativi nel flusso del proxy.

Per filtrare la tabella:

  • Seleziona un tipo di icona.
  • Fai clic sull'intestazione della colonna Nome per ordinare la tabella in base al nome dell'icona.
  • Digita una parola chiave per cercare il nome di un'icona.

Tipo di icona

Icona Nome Tipo Descrizione
monitor App client Transazione standard L'app client che invia una richiesta all'endpoint proxy dell'API proxy.
circle Endpoint di transizione Transazione standard Il cerchio contrassegna gli endpoint di transizione nel flusso del proxy. Sono presenti quando viene inviata una richiesta dal client, quando la richiesta viene inviata al target, quando la risposta viene restituita dal target e quando la risposta viene restituita al client.
stat_0 Segmento di flusso Transazione standard

Il diamante indica l'inizio di un segmento di flusso nel flusso del proxy API. I segmenti di flusso sono: richiesta ProxyEndpoint, richiesta TargetEndpoint, risposta TargetEndpoint e risposta ProxyEndpoint. Un segmento include PreFlow, i flussi condizionali e PostFlow.

Per ulteriori informazioni, consulta la sezione Flussi agevolati.

icona condizione vera Flusso condizionale vero Transazione standard

Un flusso condizionale che restituisce true (ad esempio un istruzione if valutata come true). Per un'introduzione ai flussi condizionali, consulta Flussi condizionali.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, la seguente è un'espressione utilizzata da Apigee per verificare se si è verificato un errore in ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))

icona condizione falsa Flusso condizionale falso Transazione standard

Un flusso condizionale che restituisce false. Per un'introduzione ai flussi agevolati, consulta la sezione flussi agevolati.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, la seguente è un'espressione utilizzata da Apigee per verificare se si è verificato un errore in TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

icona informazioni sul flusso Informazioni sul flusso Transazione standard Rappresenta informazioni contestuali sull'esecuzione del proxy API, che variano a seconda del punto del flusso. Sono inclusi dettagli sulla configurazione del proxy, lo stato di esecuzione corrente (ad es. PreFlow, PostFlow, hook del flusso), dettagli sull'esecuzione dei criteri e variabili compilate durante l'esecuzione dei criteri per indicare lo stato specifico del proxy in quel momento.
done_all Esecuzione del flusso Transazione standard Indica l'inizio o la fine dell'esecuzione di un flusso, indicando il periodo di tempo di un segmento di flusso distinto, per delimitare visivamente i confini del flusso e indicare la sequenza di esecuzione del flusso.
commit Elaborazione dei flussi Transazione standard Indica l'elaborazione attiva all'interno di un flusso, che rappresenta il periodo durante il quale vengono eseguiti i criteri e la logica del flusso.
bar_chart Dati acquisiti da Apigee Analytics Transazione standard Indica che le azioni di Analytics si sono verificate in background.
location_on Servizio di backend Transazione standard Servizio di backend che riceve la richiesta. Il target di backend chiamato dal proxy API.
icona disattivata Disabilitato Stato passaggio Viene visualizzata sull'icona di un criterio quando questo è disattivato. Un criterio può essere disattivato con l'API pubblica. Consulta Riferimento per la configurazione dei proxy API.
icona di errore Errore Stato passaggio Viene visualizzata sull'icona di un criterio quando la condizione del passaggio del criterio è falsa (vedi Condizioni con variabili di flusso) o sull'icona del criterio RaiseFault ogni volta che viene eseguito un criterio RaiseFault.
icona saltata Ignorato Stato passaggio Viene visualizzata sull'icona di un criterio quando il criterio non è stato eseguito perché la condizione del passaggio è stata valutata come falsa. Per ulteriori informazioni, consulta la sezione Condizioni con variabili di flusso.

Debug v1

Questa versione utilizza un grafico di Gantt per visualizzare i passaggi della richiesta e della risposta. Non è fornita alcuna legenda.

Interfaccia utente classica

La tabella seguente descrive lo scopo delle icone che vedrai nella mappa delle transazioni. Queste icone contrassegnano ciascuno dei passaggi di elaborazione più importanti nel flusso del proxy.

Icone della mappa delle transazioni

icona dell'app client L'app client che invia una richiesta a ProxyEndpoint del proxy API.
icona dell'endpoint di transizione I cerchi indicano gli endpoint di transizione nel flusso del proxy. Sono presenti quando viene inviata una richiesta dal client, quando la richiesta viene inviata al target, quando la risposta viene restituita dal target e quando la risposta viene restituita al client.
icona segmento di flusso

Le barre alte indicano l'inizio di un segmento di flusso nel flusso del proxy API. I segmenti del flusso sono: richiesta ProxyEndpoint, richiesta TargetEndpoint, risposta TargetEndpoint e risposta ProxyEndpoint. Un segmento include PreFlow, Conditional Flows e PostFlow.

Per ulteriori informazioni, consulta la sezione Configurazione dei flussi.

icona di Dati

Indica che le azioni di Analytics si sono verificate in background.

icona condizione vera

Un flusso condizionale che restituisce true. Per un'introduzione ai flussi agevolati, consulta Configurare i flussi.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, la seguente è un'espressione utilizzata da Apigee per verificare se si è verificato un errore in ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
icona condizione falsa

Un flusso condizionale che restituisce false. Per un'introduzione ai flussi condizionali, consulta Configurare i flussi.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, la seguente è un'espressione utilizzata da Apigee per verificare se si è verificato un errore in TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

icona xml to json

icona quota

Norme. Ogni tipo di criterio ha un'icona univoca. Questo è per il criterio AssignMessage. Queste icone ti consentono di vedere dove vengono eseguiti i criteri nell'ordine corretto e se sono stati eseguiti correttamente o meno. Puoi fare clic sull'icona di una norma per visualizzare i risultati della sua esecuzione e se sono previsti o meno. Ad esempio, puoi vedere se il messaggio è stato trasformato correttamente o se è memorizzato nella cache.

I criteri eseguiti correttamente sono chiaramente indicati da segni di spunta. In caso di errore, sull'icona viene visualizzato un punto esclamativo rosso.

icona del server Il target di backend chiamato dal proxy API.
icona millisecondi La linea del tempo indica il tempo (in millisecondi) necessario per completare l'elaborazione. Il confronto dei segmenti di tempo trascorso ti consente di isolare i criteri che richiedono più tempo per l'esecuzione e rallentano le chiamate API.
icona epsilon Epsilon indica un intervallo di tempo inferiore a un millisecondo.
icona disattivata

Disabilitata. Viene visualizzata sull'icona di un criterio quando questo è disattivato. Un criterio può essere disattivato con l'API pubblica. Consulta il riferimento per la configurazione dei proxy API.

icona di errore Errore. Viene visualizzata sull'icona di un criterio quando la condizione del passaggio del criterio ha valore false (vedi Voci e condizioni del flusso), o sull'icona del criterio RaiseFault ogni volta che viene eseguito un criterio RaiseFault.
icona saltata Ignorata. Viene visualizzata sull'icona di un criterio quando il criterio non è stato eseguito perché la condizione del passaggio è stata valutata come falsa. Per ulteriori informazioni, consulta la sezione Voci e condizioni del flusso.

Riquadro dei dettagli della fase

Il riquadro dei dettagli della fase indica lo stato del proxy in ogni fase di elaborazione.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Il riquadro dei dettagli della fase fornisce molte informazioni sullo stato del proxy in ogni fase di elaborazione. Ecco alcuni dei dettagli forniti. Fai clic su un'icona qualsiasi nello strumento di debug per visualizzare i dettagli del passaggio selezionato oppure utilizza i pulsanti > Avanti o < Indietro per passare da un passaggio all'altro.

La tabella seguente descrive i dettagli forniti nel riquadro dei dettagli della fase.

Dettagli della fase Descrizione
Variabili

Elenca le variabili di flusso che sono state lette e a cui è stato assegnato un valore da un criterio. Consulta anche Utilizzare le variabili di flusso.

Intestazioni delle richieste Elenca le intestazioni delle richieste HTTP.
Richiedi contenuti Mostra il corpo della richiesta HTTP.
Proprietà Le proprietà rappresentano lo stato interno del proxy API. Per impostazione predefinita, non vengono mostrate.
Endpoint di destinazione Indica quale TargetEndpoint è stato selezionato per l'esecuzione.
Intestazioni della risposta Elenca le intestazioni della risposta HTTP.
Contenuto della risposta Mostra il corpo della risposta HTTP.

Debug v1

Fai clic sui passaggi nel grafico di Gantt per visualizzare i dettagli della fase o per eseguire una sessione di debug utilizzando i pulsanti > Avanti o < Indietro.

Interfaccia utente classica

La sezione Dettagli fase dello strumento ti fornisce molte informazioni sullo stato del proxy in ogni fase di elaborazione. Ecco alcuni dei dettagli forniti nella sezione Dettagli della fase. Fai clic su qualsiasi icona nello strumento di debug per visualizzare i dettagli del passaggio selezionato oppure utilizza i pulsanti Avanti/Indietro per passare da un passaggio all'altro.

Dettagli della fase Descrizione
Endpoint proxy Indica quale flusso ProxyEndpoint è stato selezionato per l'esecuzione. Un proxy API può avere più endpoint proxy denominati.
Variabili

Elenca le variabili di flusso che sono state lette e a cui è stato assegnato un valore da un criterio. Consulta anche Utilizzare le variabili di flusso.

Nota:

  • Un segno di uguale (=) indica il valore assegnato alla variabile.
  • Un segno di uguale barrato (≠) indica che non è stato possibile assegnare un valore alla variabile perché è sola lettura o si è verificato un errore durante l'esecuzione del criterio.
  • Un campo vuoto indica che il valore della variabile è stato letto.
Intestazioni delle richieste Elenca le intestazioni delle richieste HTTP.
Richiedi contenuti Mostra il corpo della richiesta HTTP.
Proprietà Le proprietà rappresentano lo stato interno del proxy API. Per impostazione predefinita, non vengono mostrate.
Endpoint di destinazione Indica quale TargetEndpoint è stato selezionato per l'esecuzione.
Intestazioni della risposta Elenca le intestazioni della risposta HTTP.
Contenuto della risposta Mostra il corpo della risposta HTTP.
PostClientFlow Mostra informazioni su PostClientFlow, che viene eseguito dopo che la richiesta è stata restituita all'app client richiedente. Solo i criteri di registrazione dei messaggi possono essere associati a PostClientFlow. Al momento, PostClientFlow viene utilizzato principalmente per misurare l'intervallo di tempo tra i timestamp di inizio e di fine del messaggio di risposta.

Cronologia

La sequenza temporale indica il tempo (in millisecondi) necessario per completare l'elaborazione. Confrontare i segmenti di tempo trascorso ti consente di isolare i criteri che richiedono più tempo per l'esecuzione e che rallentano le chiamate all'API.

Epsilon indica un intervallo di tempo inferiore a un millisecondo.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Fai clic per visualizzare un&#39;immagine più grande Sequenza temporale nell&#39;interfaccia utente di Debug v2

Debug v1

Fai clic per visualizzare un&#39;immagine più grande Sequenza temporale nell&#39;interfaccia utente di Debug v1

Interfaccia utente classica

Fai clic per visualizzare un&#39;immagine più grande nella visualizzazione della cronologia nell&#39;interfaccia utente classica

Espandere e comprimere gruppi

Questa sezione descrive come espandere e comprimere i gruppi nel riquadro delle transazioni.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

I passaggi della transazione, sia per la richiesta che per la risposta, sono raggruppati in base alla modalità di configurazione precedente nella scheda Sviluppa; per flusso condiviso. Ad esempio: pre-proxy, post-proxy, pre-target e post-target.

Ogni raggruppamento mostra chiaramente norme, condizioni, flussi condivisi e informazioni sui flussi pertinenti.

I flussi condivisi sono raggruppati e compressi per impostazione predefinita.

Nel riquadro Transazioni sono disponibili le seguenti azioni:

Elemento Nome Descrizione
Espandi tutto il cursore
<img <="" alt="collapse all slider" class="screenshot" src="/static/apigee/docs/api-platform/debug/images/collapse_all_slider.png" td="" width="" />
Espandi tutto
Comprimi tutto
Espandi o comprimi tutti i gruppi.
icona Espandi gruppo
icona comprimi gruppo
Espandi
Comprimi
Espandi o comprimi un gruppo.

Vedi anche:

Debug v1

L'espansione e il collasso dei gruppi non è disponibile in questa versione.

Interfaccia utente classica

L'espansione e il collasso dei gruppi non è disponibile in questa versione.

La ricerca ti consente di trovare una parola o una frase nella richiesta o nella risposta.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

La ricerca ti consente di trovare una parola o una frase nella richiesta o nella risposta.

Tieni presente quanto segue:

  • La ricerca non distingue tra maiuscole e minuscole
  • La ricerca si applica a una singola transazione, ovvero non viene eseguita su tutte le transazioni nell'intera sessione di debug.
  • La ricerca espande le sezioni compresse, ma non mostra informazioni sui nodi filtrati dalle selezioni delle Opzioni di visualizzazione.

Per eseguire una ricerca:

  1. Digita il testo nella casella di ricerca.
  2. Premi Invio.

    I risultati di ricerca sono evidenziati nel riquadro Transazioni e nel riquadro Dettagli fase.

  3. Fai clic su keyboard_arrow_up Indietro o keyboard_arrow_down Avanti per passare al passaggio successivo o precedente.
Fai clic per visualizzare un&#39;immagine più grande Risultati di ricerca nell&#39;interfaccia utente di Debug v2

Debug v1

La ricerca non è disponibile in questa versione.

Interfaccia utente classica

La ricerca non è disponibile in questa versione.

Zoom

Lo zoom ti consente di controllare la visualizzazione del riquadro Transazioni.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Lo zoom controlla la visualizzazione del riquadro Transazioni come segue:

Fai clic per visualizzare un&#39;immagine più grande Controlli zoom di Debug v2
Icona Descrizione
100% Livello di zoom attuale. Il valore predefinito è 100%.
fit_screen Adatta allo schermo
zoom_in Aumenta zoom
zoom_out Diminuisci zoom
youtube_searched_for Reimpostazione zoom

Debug v1

Zoom non è disponibile in questa versione.

Interfaccia utente classica

Zoom non è disponibile in questa versione.

Eseguire il debug con lo strumento di debug

Il debug ti consente di vedere molti dettagli interni di un proxy API. Ad esempio:

  • Puoi vedere a colpo d'occhio quali criteri vengono eseguiti correttamente o non.
  • Supponiamo che tu abbia notato in una delle dashboard di Analytics che il rendimento di una delle tue API sta registrando un calo insolito. Ora puoi utilizzare il debug per identificare dove si verifica il collo di bottiglia. Il debug indica il tempo, in millisecondi, necessario per il completamento di ogni fase di elaborazione. Se un passaggio richiede troppo tempo, puoi intervenire per correggerlo.
  • Puoi controllare le intestazioni inviate al backend, visualizzare le variabili impostate dai criteri e così via.
  • Verificando il percorso di base, puoi assicurarti che un criterio indirizzi il messaggio al server corretto.

Filtrare i dati in una sessione di debug

Quando crei una sessione di debug, puoi aggiungere un filtro alla sessione in modo che Apigee restituisca solo i dati che ti interessano. Un filtro è un'istruzione condizionale che Apigee valuta in base ai messaggi di richiesta e risposta per determinare se i relativi dati di debug devono essere inclusi nella sessione di debug. Ad esempio, puoi escludere tutte le richieste con un codice di risposta HTTP inferiore a 599 o confrontare i valori nella richiesta con le variabili personalizzate.

Tieni presente quanto segue:

  • Le richieste non incluse in una sessione di debug perché filtrate non vengono conteggiate per il numero massimo di transazioni nella sessione di debug.
  • Apigee non supporta l'aggiunta di filtri nella stringa di query.
  • Non puoi aggiungere un filtro a una sessione di debug dopo l'avvio. Per aggiungere un filtro, devi creare una sessione di debug.

Utilizzo dei filtri

Utilizza un filtro quando crei una sessione di debug utilizzando l'API o l'interfaccia utente di Apigee, come descritto nelle sezioni seguenti.

Interfaccia utente di Cloud Console

Quando crei una sessione di debug nell'interfaccia utente, nell'elenco a discesa Filtri puoi scegliere un filtro predefinito da applicare nel riquadro Avvia una sessione di debug o scegliere Filtro personalizzato e crearne uno con la sintassi del filtro.

Interfaccia utente classica

Quando crei una sessione di debug nell'interfaccia utente, nell'elenco a discesa Filtri puoi scegliere un filtro predefinito da applicare nel riquadro Avvia una sessione di debug oppure scegliere Filtro personalizzato e crearne uno con la sintassi del filtro.

API

Per creare una sessione di debug con un filtro utilizzando l'API, includi quanto segue come payload nella richiesta di creazione della sessione di debug:

{
  "filter":"filter_body"
}

Per informazioni sulla creazione dei filtri, consulta la sezione Sintassi dei filtri.

L'esempio seguente crea una sessione di debug che include solo le transazioni in cui l'intestazione A è uguale a 42 e l'intestazione B è uguale a 43 oppure il codice di errore è ExpectedEOF:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

Puoi definire un filtro solo nelle richieste di creazione della sessione di debug. Non puoi aggiungere un filtro a una sessione di debug esistente e non puoi rimuovere un filtro da una sessione di debug attiva.

Sintassi filtro

I filtri supportano la stessa sintassi utilizzata dalle condizioni Apigee, come descritto nel riferimento alle condizioni. È incluso quanto segue:

Inoltre, i filtri possono accedere a tutte le variabili di flusso descritte nel riferimento alle variabili di flusso, nonché alle variabili personalizzate. Gli esempi riportati di seguito mostrano solo alcune delle possibili variabili di flusso che puoi utilizzare nei filtri:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

Per informazioni sull'utilizzo delle variabili personalizzate, consulta Come utilizzare gli attributi personalizzati in Apigee nella community Apigee.

Filtri dell'interfaccia utente predefiniti

L'interfaccia utente di Apigee fornisce un insieme di filtri comuni per consentirti di non dover scrivere i tuoi filtri personalizzati. I filtri predefiniti sono riportati nella tabella seguente.

Nome filtro Descrizione
Response Time Greater Than

Controlla la presenza di problemi di latenza nei seguenti casi:

  • target.duration è la latenza target, ovvero il tempo in millisecondi necessario per inviare una richiesta e riceverla dal target (calcolata come differenza tra target.received.end.timestamp e target.sent.start.timestamp).
  • client.duration è la latenza del client, ovvero il tempo, in millisecondi, necessario per inviare una richiesta e riceverla dal client (calcolata come differenza tra client.received.end.timestamp e client.sent.start.timestamp)

Ad esempio:

target.duration > 420 && client.duration > 1000

Per ulteriori informazioni, consulta client e target nel riferimento alle variabili di flusso.

Response Code

Controlla se il codice di risposta HTTP corrisponde al valore specificato, ad esempio:

response.status.code <= 599
Header

Controlla se l'intestazione della richiesta specificata è uguale al valore specificato. Ad esempio:

request.header.cache-control.1 == "16544"
Path

Controlla se la richiesta corrisponde al percorso specificato. Puoi utilizzare la corrispondenza con caratteri jolly nel valore, ad esempio:

request.path == /myproxy/customer/4*
Query Param

Controlla se il parametro di query della richiesta specificato è uguale al valore specificato. Ad esempio:

request.queryparam.lang == "language:en-us"
Custom

Consente di inserire le tue espressioni. Puoi utilizzare qualsiasi oggetto nel riferimento alle variabili di flusso e la sintassi nel riferimento alle condizioni. Inoltre, puoi utilizzare le variabili personalizzate.

Per ulteriori informazioni sulla creazione di filtri personalizzati, consulta Sintassi dei filtri.

 

Visualizzazione delle sessioni di debug

Apigee salva i dati della sessione di debug per 24 ore. Non puoi configurare questo valore. Dopo 24 ore, i dati non saranno più disponibili. Prima di questa data, puoi visualizzare le sessioni di debug.

Visualizza le sessioni di debug recenti utilizzando l'API o l'interfaccia utente di Apigee, come descritto nelle sezioni seguenti.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Per visualizzare le sessioni di debug utilizzando la console Google Cloud

  1. Accedi alla console Google Cloud.
  2. Fai clic su Sviluppo proxy > Proxy API.

  3. Fai clic sul proxy che vuoi eseguire il debug.
  4. Fai clic sulla scheda Debug.
  5. La sezione Sessioni di debug recenti mostra un elenco delle sessioni di debug disponibili.
  6. Fai clic sul link relativo alla sessione che vuoi visualizzare.

Debug v1

Per visualizzare le sessioni di debug utilizzando il nuovo editor proxy:

  1. Accedi alla console Google Cloud.
  2. Seleziona Sviluppo proxy > Proxy API.

  3. Seleziona il proxy che vuoi eseguire il debug.
  4. Fai clic sulla scheda Debug.
  5. La sezione Sessioni di debug recenti mostra un elenco delle sessioni di debug disponibili.
  6. Fai clic sul link relativo alla sessione che vuoi visualizzare.

Interfaccia utente classica

Per visualizzare le sessioni di debug utilizzando l'editor proxy classico:

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona Proxy API dalla visualizzazione principale.
  3. Seleziona il proxy che vuoi eseguire il debug.
  4. Fai clic sulla scheda Debug in alto a destra nella visualizzazione Deployment.
  5. Nel riquadro Sessioni di debug recenti:
    1. Nell'elenco a discesa Env, seleziona l'ambiente del proxy API di cui vuoi visualizzare la sessione di debug.
    2. Dall'elenco a discesa Rev (Revisione), seleziona il numero di revisione del proxy API di cui vuoi visualizzare la sessione di debug.

    L'interfaccia utente di Apigee mostra un elenco delle sessioni di debug disponibili.

  6. Fai clic sul link relativo alla sessione che vuoi visualizzare.

    L'interfaccia utente di Apigee carica la sessione di debug e compila il riquadro Invia richieste con i dati di debug.

API

Con l'API puoi:

Visualizza tutte le sessioni di debug utilizzando l'API

Per visualizzare tutte le sessioni di debug recenti definite per una revisione del proxy API in un ambiente, invia una richiesta GET alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

Se vuoi, puoi specificare uno dei seguenti parametri di query per controllare la quantità di dati restituito:

  • pageSize: il numero massimo di sessioni di debug da elencare. Il valore predefinito per le dimensioni della pagina è 25.
  • pageToken: il token di pagina restituito da una chiamata precedente che puoi utilizzare per recuperare la pagina successiva.

L'esempio seguente mostra come visualizzare le sessioni di debug per la revisione 1 del proxy API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
-X GET \
-H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste all'API Apigee.

La risposta include un oggetto sessions che contiene un elenco delle sessioni di debug attualmente attive, come mostrato nell'esempio seguente:

{
"sessions": [
{
"id": "a423ac73-0902-4cfa-4242-87a353a84d87",
"timestamp_ms": 1566330186000
},
{
"id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
"timestamp_ms": 1566330286000
}
]
}

Nella risposta sono incluse solo le sessioni di debug che contengono almeno una transazione. Le sessioni di debug che non hanno transazioni non sono incluse in questo elenco.

Per ulteriori informazioni, consulta l'API List Debug Sessions.

Visualizzare tutte le transazioni per una sessione di debug utilizzando l'API

Per visualizzare un elenco di transazioni per una sessione di debug, invia una richiesta GET alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

dove debugsession è l'ID di una sessione di debug restituito quando visualizzi le sessioni di debug.

L'esempio seguente mostra come visualizzare le transazioni per una sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
-X GET \
-H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste all'API Apigee.

La risposta include un array di ID transazioni, come mostrato nell'esempio seguente:

[
"myorg-test-ver-5qxdb-64",
"myorg-test-ver-5qxdb-65",
"myorg-test-ver-5qxdb-66",
"myorg-test-ver-5qxdb-67",
"myorg-test-ver-5qxdb-68",
"myorg-test-ver-5qxdb-69",
"myorg-test-ver-5qxdb-70",
"myorg-test-ver-5qxdb-71",
"myorg-test-ver-5qxdb-72"
]

Per ulteriori informazioni, consulta l'API List debug session data.

Visualizzazione dei dati sulle transazioni per una sessione di debug mediante l'API

Per visualizzare i dati delle transazioni per una sessione di debug, invia una richiesta GET alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

dove debugsession è l'ID di una sessione di debug restituito quando visualizzi le sessioni di debug e transactionId è l'ID transazione restituito quando visualizzi un elenco di transazioni per una sessione di debug.

I dati della transazione salvati durante una sessione di debug sono formattati in JSON. Puoi caricare questi dati nello strumento di debug offline.

L'esempio seguente mostra come scaricare i dati delle transazioni per una sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
-X GET \
-H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste all'API Apigee.

La risposta è costituita da un payload JSON contenente i dati relativi alla transazione specificata, come descritto in Scaricare la struttura dei dati.

I dati di debug contengono tutte le informazioni sulla richiesta e sulla risposta per ogni parte del flusso in un formato JSON proprietario. Puoi salvare questi dati e utilizzarli in un secondo momento nello strumento di debug offline.

Se non sono state aggiunte richieste alla sessione prima della sua terminazione, la risposta sarà la seguente:

[]

Per saperne di più, consulta l'API Get debug session data.

Selezione delle opzioni di visualizzazione nell'interfaccia utente

Questa sezione descrive come selezionare le opzioni di visualizzazione per filtrare i contenuti visualizzati nell'interfaccia utente.

Interfaccia utente di Cloud Console

Per scegliere le opzioni di visualizzazione per la sessione di debug, seleziona o deseleziona le opzioni nel riquadro Opzioni di visualizzazione. Queste opzioni di visualizzazione vengono memorizzate nella sessione di debug per ogni utente.

Fai clic per visualizzare l&#39;immagine ingrandita visualizzare l&#39;elenco delle opzioni
Opzione Descrizione
Mostra le norme disattivate Mostra eventuali criteri disattivati. Un criterio può essere disattivato con l'API pubblica. Consulta Riferimento per la configurazione dei proxy API.
Mostra le norme saltate Mostra eventuali criteri ignorati. Un criterio viene saltato quando non viene eseguito perché la condizione del passaggio è stata valutata come falsa. Per ulteriori informazioni, consulta la sezione Condizioni con variabili di flusso.
Mostra tutti i FlowInfo Rappresentano le transizioni all'interno di un segmento di flusso.
Mostra tutte le condizioni del flusso Rappresentano le condizioni valutate per ogni flusso.

Interfaccia utente classica

Per scegliere le opzioni di visualizzazione per la sessione di debug, seleziona o deseleziona le opzioni nel riquadro Opzioni di visualizzazione:

visualizzare l&#39;elenco delle opzioni

Opzione Descrizione
Mostra criteri disattivati Mostra eventuali criteri disattivati. Un criterio può essere disattivato con l'API pubblica. Consulta Riferimento per la configurazione dei proxy API.
Mostra fasi saltate Mostra eventuali fasi saltate. Una fase viene saltata quando il criterio non è stato eseguito perché la condizione del passaggio è risultata falsa. Per ulteriori informazioni, consulta la sezione Condizioni con variabili di flusso.
Mostra tutti i FlowInfo Rappresentano le transizioni all'interno di un segmento di flusso.
Confronta automaticamente la fase selezionata Confronta la fase selezionata con quella precedente. Disattiva questa opzione per visualizzare solo la fase selezionata.
Mostra variabili Mostra o nascondi le variabili che sono state lette e/o a cui è stato assegnato un valore.
Mostra proprietà Le proprietà rappresentano lo stato interno del proxy API. (Nascosto per impostazione predefinita).

Condividere una sessione di debug

Puoi condividere una sessione di debug con altri utenti che hanno accesso alla tua organizzazione e alle autorizzazioni necessarie. Per farlo, invia l'URL visualizzato nel browser quando visualizzi la sessione di debug. Il link è valido solo per 24 ore dopo la creazione della sessione di debug.

Download dei dati della sessione di debug

Puoi scaricare un file di risultati di debug non elaborati per la visualizzazione offline. Il file scaricato mostra i dettagli completi della sessione di debug, inclusi i contenuti di tutte le intestazioni, le variabili e i criteri.

I dati della sessione di debug sono disponibili per il download o la visualizzazione nell'interfaccia utente solo per 24 ore. Dopo questo punto, Apigee elimina i dati della sessione.

Per visualizzare i dati della sessione di debug scaricati, utilizza lo strumento di debug offline.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Per scaricare la sessione di debug corrente nella console Google Cloud, fai clic su Scarica nella visualizzazione di debug.

Fai clic per visualizzare l&#39;immagine ingrandita Scaricare una sessione di debug

Debug v1

Per scaricare la sessione di debug corrente nel nuovo editor proxy, fai clic su Scarica sessione nel riquadro a sinistra della visualizzazione di debug.

Scarica una sessione di debug.

Tieni presente che una sessione di debug viene eliminata entro 24 ore dal momento in cui viene completata, quindi se vuoi visualizzarla dopo questo lasso di tempo, devi scaricarla prima.

Interfaccia utente classica

Per scaricare i dati della sessione di debug corrente utilizzando la versione classica di Proxy Editor:

  • Sessione attiva: fai clic sull'icona di download (Icona Scarica) nel riquadro Dettagli di debug.
  • Sessione precedente:fai clic sul nome della sessione nel riquadro Sessioni di debug recenti, come descritto in Visualizzazione delle sessioni di debug. Poi fai clic su Icona Scarica nel riquadro Dettagli di debug.

API

Per visualizzare gli ID di tutte le transazioni per la sessione di debug corrente utilizzando l'API Apigee, inserisci il seguente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

dove SESSION_ID è l'ID della sessione di debug che vuoi scaricare.

Consulta Enumerare gli ID transazione da una sessione di debug.

Per ottenere i dati di debug di una transazione utilizzando l'API Apigee, inserisci il seguente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

Scarica la struttura dei dati

La struttura di download dei dati della sessione di debug è diversa per l'interfaccia utente di Apigee e l'API Apigee.

Interfaccia utente di Cloud Console

Quando scarichi i dati utilizzando l'interfaccia utente di Apigee, la struttura dei dati:

  • Include tutte le transazioni nell'intera sessione
  • Memorizza le transazioni in un array Messages
  • Include i metadati sulla sessione (come oggetto DebugSession)

Interfaccia utente classica

Quando scarichi i dati utilizzando l'interfaccia utente di Apigee, la struttura dei dati:

  • Include tutte le transazioni nell'intera sessione
  • Memorizza le transazioni in un array Messages
  • Include i metadati sulla sessione (come oggetto DebugSession)

API

Non puoi utilizzare l'API Apigee per visualizzare contemporaneamente i dati di un'intera sessione. Puoi solo utilizzare l'API per visualizzare i dati delle singole transazioni, come descritto in Visualizzazione delle sessioni di debug.

Ad esempio:

{
"completed": true,
"point": [
  ...
...
}

Scaricare esempi di dati

L'esempio seguente mette in evidenza un oggetto metadati DebugSession nei dati scaricati. Questo oggetto è seguito dall'array Messages che contiene le transazioni nella sessione.

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

Se la sessione di debug non ha incluso richieste, l'array Message è vuoto, come mostrato nell'esempio seguente:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
"Messages": []
}

Eliminazione dei dati di una sessione di debug

Elimina i dati per una sessione di debug utilizzando l'API o l'interfaccia utente di Apigee, come descritto nelle seguenti sezioni.

Interfaccia utente di Cloud Console

Debug v2 (nuovo)

Per eliminare una sessione di debug nella console Google Cloud:

  1. Nella scheda Debug, fai clic sulla riga relativa alla sessione da eliminare.
  2. Nel riquadro Sessione di debug, fai clic su Elimina.
Fai clic per visualizzare l&#39;immagine ingrandita Eliminare una sessione di debug

Debug v1

Per eliminare una sessione di debug nel nuovo Editor proxy:

  1. Seleziona la riga della sessione che vuoi eliminare.
  2. Fai clic sul menu con tre puntini alla fine della riga e seleziona Elimina.

Interfaccia utente classica

Fai clic su Icona Elimina nel riquadro Dettagli di debug della sessione di debug.

API

Per eliminare tutti i dati della sessione di debug utilizzando l'API, invia una richiesta DELETE alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

dove debugsession è l'ID di una sessione di debug restituito quando visualizzi le sessioni di debug.

L'esempio seguente mostra come eliminare i dati della sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
      -X DELETE \
      -H "Authorization: Bearer $TOKEN"
    

Dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste all'API Apigee.

In caso di esito positivo, il corpo della risposta sarà vuoto.

I dati della sessione di debug vengono mantenuti solo per 24 ore. Se non lo elimini esplicitamente prima di questa data, Apigee lo elimina per te.