Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Puoi eseguire il debug di un'estensione utilizzando i messaggi visibili in due posizioni: lo strumento di traccia e i log delle estensioni. Quando un'estensione non funziona, a volte per identificare il problema possono essere necessarie informazioni da entrambe le posizioni.
Lo strumento di traccia Apigee Edge ti consente di testare e modificare in modo iterativo il codice del proxy API durante lo sviluppo. I messaggi di traccia includono gli errori del codice del proxy API, inclusa la configurazione del proxy API e dei criteri.
Gli errori relativi alle estensioni visualizzati nello strumento di traccia di solito non contengono molti dettagli, tranne indicare quale callout dell'estensione non è riuscito, insieme a un codice di errore HTTP. Se non vedi nulla di utile qui, il posto migliore per cercare è il log dell'estensione che stai utilizzando.
Le estensioni generano voci di log in fase di esecuzione. I log delle estensioni sono disponibili solo per gli amministratori dell'organizzazione.
Questi log includono le voci restituite dalla risorsa esterna con cui l'estensione è configurata per interagire. Ad esempio, se le credenziali delle risorse esterne non sono configurate correttamente nell'estensione, è probabile che l'errore venga visualizzato qui.
I log includono anche le voci del codice interno dell'estensione. Quando esamini i log, tieni presente che alcune voci non sono pertinenti all'errore che stai correggendo. Le voci di log relative alle estensioni in genere iniziano con la parola
details
, come nella seguente voce di log dell'estensione Cloud Pub/Sub:details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
Tipi e cause di errori
L'elaborazione delle richieste di estensione avviene da un criterio ExtensionCallout in un proxy API, attraverso l'estensione, alla risorsa esterna e poi di nuovo indietro. Di conseguenza, un errore può verificarsi in uno di questi punti.
Gli errori visualizzati potrebbero rientrare nelle seguenti categorie.
Errori nella configurazione dell'estensione
Questa è la configurazione eseguita da un amministratore dell'organizzazione quando aggiunge un'estensione a un ambiente.
Ad esempio, se configuri l'estensione Cloud Logging con un ID progetto Google Cloud errato, Cloud Logging restituirà un errore all'estensione. I dettagli su questi errori si trovano in genere nel log dell'estensione.
Prove nello strumento di monitoraggio
Nell'editor proxy, questi errori vengono in genere visualizzati come errori a livello 4xx
o
5xx
. Tuttavia, l'editor del proxy non mostra dettagli sulla causa dell'errore, a parte il fatto che l'estensione ha restituito un errore.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Prove nei log delle estensioni
Se sono disponibili dettagli su questo tipo di errore, li troverai nelle voci del log dell'estensione. Il seguente messaggio di errore, restituito dal servizio Cloud Pub/Sub, è il risultato di un ID progetto non valido.
details: 'Project does not exist: example-test-12345'
Errori nella configurazione del criterio ExtensionCallout
Questi errori si verificano quando il criterio ExtensionCallout è configurato in modo errato, a causa di un errore di sintassi nella configurazione del criterio o di chiavi o valori di configurazione errati. Questi errori possono assumere due forme, a seconda della configurazione del criterio:
Valori errati valutati dalla risorsa esterna
Questo può verificarsi quando l'errore di configurazione è sembrato valido per l'estensione, ma non per la risorsa esterna. Ad esempio, se l'estensione passa un ID database errato a Cloud Spanner, Cloud Spanner restituirà un errore registrato nel log dell'estensione:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
Questo può verificarsi anche per la configurazione JSON errata nell'elemento
<Input>
del criterio. Per alcune estensioni, una parte del JSON viene elaborata dall'estensione e una parte viene passata alla risorsa. Ad esempio, il file JSON di configurazione dell'estensione di Cloud Logging include un oggettometadata
i cui contenuti vengono passati a Cloud Logging. Nomi delle chiavi errati, ad esempiotyp
anzichétype
, possono restituire errori dalla risorsa esterna che vengono visualizzati come voci nel log dell'estensione:details: 'Resource type cannot be empty'
Valori errati valutati dall'estensione
Questi errori includono errori di sintassi nelle parti valutate in base ai criteri dell'elemento JSON
<Input>
, errori ortografici nel nome dell'azione nell'elemento<Action>
e così via. In genere questi errori vengono visualizzati nello strumento di traccia, ma non nei log dell'estensione.
Prove nello strumento di monitoraggio
Nell'editor proxy, questi errori vengono in genere visualizzati come errori a livello 4xx
o
5xx
. Tuttavia, l'editor del proxy non mostra dettagli sulla causa dell'errore, a parte il fatto che l'estensione ha restituito un errore. Lo strumento Trace mostra il seguente errore quando viene scritto erroneamente il nome dell'azione nell'estensione Cloud Firestore.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Prove nei log delle estensioni
Quando la configurazione dei criteri genera un errore di elaborazione nella risorsa esterna, l'errore viene visualizzato in genere nel log.
Errori relativi alla richiesta dell'estensione alla risorsa
Si tratta di un errore in cui la richiesta alla risorsa esterna non è andata a buon fine per motivi non correlati all'estensione.
Ad esempio, immagina di utilizzare l'estensione Cloud Spanner per aggiungere una riga al database, ma il valore della chiave primaria della riga è già utilizzato in una riga esistente. Cloud Spanner restituirà un errore all'estensione, che lo aggiungerà al log dell'estensione.
Prove nello strumento di monitoraggio
Nell'editor proxy, questi errori vengono in genere visualizzati come errori a livello 4xx
o 5xx
. Tuttavia, l'editor del proxy non mostra dettagli sulla causa dell'errore, a parte il fatto che l'estensione ha restituito un errore.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Prove nei log delle estensioni
In genere, il log contiene voci con messaggi della risorsa esterna stessa. Il seguente messaggio di log di Cloud Spanner descrive l'errore del valore della chiave primaria esistente.
details: 'Row [jonesy42] in table user already exists'