Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
Sie können Erweiterungen mithilfe von Meldungen debuggen, die an zwei Stellen angezeigt werden: im Trace-Tool und in den Erweiterungslogs. Wenn eine Erweiterung nicht funktioniert, sind manchmal Informationen von beiden Stellen erforderlich, um das Problem zu identifizieren.
Mit dem Trace-Tool von Apigee Edge können Sie API-Proxy-Code während der Entwicklung iterativ testen und bearbeiten. In den Ablaufmeldungen sind Fehler aus Ihrem API-Proxy-Code enthalten, einschließlich API-Proxy- und Richtlinienkonfiguration.
Erweiterungsbezogene Fehler, die im Trace-Tool angezeigt werden, enthalten in der Regel nur wenige Details. Sie geben lediglich an, welche Erweiterungsanfrage fehlgeschlagen ist, und enthalten einen HTTP-Fehlercode. Wenn Sie hier nichts Relevantes finden, sehen Sie sich das Protokoll für die von Ihnen verwendete Erweiterung an.
Erweiterungen generieren während der Laufzeit Logeinträge. Erweiterungsprotokolle sind nur für Nutzer mit der Rolle „Organization Administrator“ verfügbar.
Diese Logs enthalten Einträge, die von der externen Ressource zurückgegeben werden, mit der die Erweiterung interagieren soll. Wenn beispielsweise die Anmeldedaten für externe Ressourcen in der Erweiterung falsch konfiguriert sind, wird der Fehler wahrscheinlich hier angezeigt.
Die Protokolle enthalten auch Einträge aus internem Erweiterungscode. Beachten Sie beim Durchsuchen der Protokolle, dass einige Einträge nicht für den Fehler relevant sind, den Sie korrigieren möchten. Erweiterungsbezogene Logeinträge beginnen in der Regel mit dem Wort
details
, wie im folgenden Logeintrag der Cloud Pub/Sub-Erweiterung: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.'
Fehlertypen und -ursachen
Die Verarbeitung von Erweiterungsanfragen fließt von einer ExtensionCallout-Richtlinie in einem API-Proxy über die Erweiterung zur externen Ressource und dann wieder zurück. Ein Fehler kann also an einer dieser Stellen auftreten.
Die Fehler können in die folgenden Kategorien fallen.
Fehler in der Erweiterungskonfiguration
Dies ist die Konfiguration, die ein Administrator einer Organisation vornimmt, wenn er einer Umgebung eine Erweiterung hinzufügt.
Wenn Sie die Cloud Logging-Erweiterung beispielsweise mit einer falschen Google Cloud-Projekt-ID konfigurieren, gibt Google Cloud Logging eine Fehlermeldung an die Erweiterung zurück. Details zu diesen Fehlern finden Sie in der Regel im Erweiterungsprotokoll.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler auf 4xx
- oder 5xx
-Ebene angezeigt. Im Proxy-Editor werden jedoch keine Details zur Ursache des Fehlers angezeigt, sondern nur, dass die Erweiterung einen Fehler zurückgegeben hat.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Hinweise in Erweiterungsprotokollen
Falls es Details zu dieser Art von Fehler gibt, finden Sie sie in den Protokolleinträgen der Erweiterung. Die folgende Fehlermeldung, die vom Cloud Pub/Sub-Dienst zurückgegeben wird, ist auf eine fehlerhafte Projekt-ID zurückzuführen.
details: 'Project does not exist: example-test-12345'
Fehler bei der Konfiguration der ExtensionCallout-Richtlinie
Diese Fehler treten auf, wenn die ExtensionCallout-Richtlinie falsch konfiguriert ist, entweder aufgrund eines Syntaxfehlers in der Richtlinienkonfiguration oder aufgrund falscher Konfigurationsschlüssel oder ‑werte. Je nach Konfiguration der Richtlinie gibt es zwei Arten von Fehlern:
Von der externen Ressource ausgewertete falsche Werte
Dies kann passieren, wenn der Konfigurationsfehler für die Erweiterung gültig, aber für die externe Ressource ungültig war. Wenn die Erweiterung beispielsweise eine falsche Datenbank-ID an Cloud Spanner weitergibt, gibt Cloud Spanner einen Fehler zurück, der im Erweiterungsprotokoll protokolliert wird:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
Dies kann auch bei einer falschen JSON-Konfiguration im
<Input>
-Element der Richtlinie auftreten. Bei einigen Erweiterungen wird ein Teil des JSON-Codes von der Erweiterung verarbeitet und ein Teil an die Ressource übergeben. Die JSON-Konfiguration der Cloud Logging-Erweiterung enthält beispielsweise einmetadata
-Objekt, dessen Inhalt an Cloud Logging übergeben wird. Falsche Schlüsselnamen dort, z. B.typ
anstelle vontype
, können Fehler von der externen Ressource zurückgeben, die als Einträge im Erweiterungsprotokoll erscheinen:details: 'Resource type cannot be empty'
Von der Erweiterung ausgewertete falsche Werte
Dazu gehören Syntaxfehler in richtlinienbewerteten Teilen des JSON-
<Input>
-Elements, Rechtschreibfehler im Namen der Aktion im<Action>
-Element usw. Diese Fehler werden in der Regel im Trace-Tool angezeigt, aber nicht in den Erweiterungsprotokollen.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler auf 4xx
- oder 5xx
-Ebene angezeigt. Im Proxy-Editor werden jedoch keine Details zur Ursache des Fehlers angezeigt, sondern nur, dass die Erweiterung einen Fehler zurückgegeben hat. Der folgende Fehler wird im Trace-Tool angezeigt, wenn der Aktionsname in der Cloud Firestore-Erweiterung falsch geschrieben ist.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Hinweise in Erweiterungsprotokollen
Wenn die Richtlinienkonfiguration zu einem Verarbeitungsfehler in der externen Ressource führt, wird der Fehler normalerweise im Protokoll angezeigt.
Fehler im Zusammenhang mit der Anfrage der Erweiterung an die Ressource
Bei diesem Fehler ist die Anfrage an die externe Ressource aus Gründen fehlgeschlagen, die nicht mit der Erweiterung zusammenhängen.
Angenommen, Sie verwenden die Cloud Spanner-Erweiterung, um der Datenbank eine Zeile hinzuzufügen, der Primärschlüsselwert der Zeile wird aber bereits in einer vorhandenen Zeile verwendet. Cloud Spanner gibt einen Fehler an die Erweiterung zurück, der dem Erweiterungsprotokoll hinzugefügt wird.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler auf 4xx
- oder 5xx
-Ebene angezeigt. Im Proxy-Editor werden jedoch keine Details zur Ursache des Fehlers angezeigt, sondern nur, dass die Erweiterung einen Fehler zurückgegeben hat.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Hinweise in Erweiterungsprotokollen
Das Protokoll enthält in der Regel Einträge mit Nachrichten von der externen Ressource selbst. In der folgenden Protokollmeldung von Cloud Spanner wird der Fehler beim Primärschlüsselwert beschrieben.
details: 'Row [jonesy42] in table user already exists'