Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Puoi eseguire il debug di un'estensione utilizzando i messaggi visibili in due posizioni: lo strumento Trace e i log delle estensioni. Quando un'estensione non funziona, l'identificazione del problema a volte può richiedere informazioni da entrambe le posizioni.
Lo strumento Trace di Apigee Edge è il luogo in cui testi e modifichi in modo iterativo il codice del proxy API durante lo sviluppo. I messaggi di traccia includono gli errori del codice del proxy API, inclusi la configurazione del proxy API e delle policy.
Gli errori relativi alle estensioni visualizzati nello strumento Trace di solito non contengono molti dettagli, tranne per indicare quale callout dell'estensione non è riuscito, insieme a un codice di errore HTTP. Se non vedi nulla di utile qui, il posto migliore successivo in cui cercare è il log dell'estensione che stai utilizzando.
Le estensioni generano voci di log in fase di runtime. (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 della risorsa esterna sono configurate in modo errato nell'estensione, è probabile che l'errore venga visualizzato qui.
I log includono anche le voci del codice dell'estensione interna. Quando esamini i log, tieni presente che alcune voci non sono pertinenti all'errore che stai correggendo. Le voci di log relative alle estensioni di solito 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 ed cause di errore
I flussi di elaborazione delle richieste di estensione provengono da una policy ExtensionCallout in un proxy API, tramite l'estensione, alla risorsa esterna e poi di nuovo indietro. Pertanto, può verificarsi un errore in una di queste posizioni.
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, Google Cloud Logging restituirà un errore all'estensione. I dettagli di questi errori sono in genere nel log dell'estensione.
Evidenze nello strumento Trace
Nell'editor del proxy, questi errori in genere vengono visualizzati come un errore di livello 4xx o
5xx. Tuttavia, l'editor del proxy non visualizzerà dettagli specifici
sulla causa dell'errore, tranne per indicare 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"
}
}
}
Evidenze nei log delle estensioni
Se sono presenti dettagli su questo tipo di errore, li vedrai nelle voci di log dell'estensione. Il seguente messaggio di errore, restituito dal servizio Cloud Pub/Sub, è dovuto a un ID progetto non valido.
details: 'Project does not exist: example-test-12345'
Errori nella configurazione della policy ExtensionCallout
Questi errori si verificano quando la policy ExtensionCallout è configurata in modo errato, a causa di un errore di sintassi di configurazione della policy o di chiavi o valori di configurazione errati. Questi errori assumono due forme, a seconda di come è configurata la policy:
Valori errati valutati dalla risorsa esterna
Ciò può verificarsi quando l'errore di configurazione sembrava valido per l'estensione, ma non era valido 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'Ciò può verificarsi anche per un JSON di configurazione errato nell'elemento
<Input>della policy. Per alcune estensioni, una parte del JSON viene elaborata dall'estensione e una parte viene passata alla risorsa. Ad esempio, il JSON di configurazione dell'estensione Cloud Logging include un oggettometadatail cui contenuto viene passato a Cloud Logging. Nomi di chiavi errati, ad esempiotypanziché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 del JSON dell'elemento
<Input>valutate dalla policy, errori di ortografia del nome dell'azione nell'elemento<Action>e così via. Questi errori in genere vengono visualizzati nello strumento Trace, ma non nei log delle estensioni.
Evidenze nello strumento Trace
Nell'editor del proxy, questi errori in genere vengono visualizzati come un errore di livello 4xx o
5xx. Tuttavia, l'editor del proxy non visualizzerà dettagli specifici
sulla causa dell'errore, tranne per indicare che l'estensione ha restituito un errore. Il
seguente errore viene visualizzato nello strumento Trace quando si scrive in modo errato 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"
}
}
}
Evidenze nei log delle estensioni
Quando la configurazione della policy genera un errore di elaborazione nella risorsa esterna, l'errore in genere viene visualizzato 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, supponiamo che tu stia utilizzando 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.
Evidenze nello strumento Trace
Nell'editor del proxy, questi errori in genere vengono visualizzati come un errore di livello 4xx-
o 5xx. Tuttavia, l'editor del proxy non visualizzerà dettagli
specifici sulla causa dell'errore, tranne per indicare 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"
}
}
}
Evidenze nei log delle estensioni
Il log in genere 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'