Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Sie können eine Erweiterung mit Nachrichten debuggen, die an zwei Stellen sichtbar sind: im Trace-Tool und in den Erweiterungslogs. Wenn eine Erweiterung nicht funktioniert, sind manchmal Informationen von beiden Stellen erforderlich, um das Problem zu identifizieren.
Im Trace-Tool von Apigee Edge können Sie API-Proxy-Code iterativ testen und bearbeiten, während Sie ihn entwickeln. Trace-Nachrichten enthalten Fehler aus Ihrem API-Proxy-Code, einschließlich der API-Proxy- und Richtlinienkonfiguration.
Erweiterungsbezogene Fehler, die im Trace-Tool angezeigt werden, enthalten in der Regel nicht viele Details. Es wird lediglich angegeben, welcher Erweiterungsaufruf fehlgeschlagen ist, zusammen mit einem HTTP-Fehlercode. Wenn Sie hier nichts Nützliches finden, ist das Log für die verwendete Erweiterung die nächstbeste Anlaufstelle.
Erweiterungen generieren Logeinträge zur Laufzeit. (Erweiterungslogs sind nur für Organisationsadministratoren 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 die externe Ressource in der Erweiterung falsch konfiguriert sind, wird der Fehler wahrscheinlich hier angezeigt.
Die Logs enthalten auch Einträge aus dem internen Erweiterungscode. Wenn Sie die Logs durchgehen, denken Sie daran, dass einige Einträge für den Fehler, den Sie beheben, nicht relevant sind. Erweiterungsbezogene Logeinträge beginnen in der Regel mit dem Wort
details, wie im folgenden Logeintrag aus 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 erfolgt über eine ExtensionCallout-Richtlinie in einem API-Proxy, über die Erweiterung, zur externen Ressource und wieder zurück. Ein Fehler kann also an jeder dieser Stellen auftreten.
Die angezeigten Fehler lassen sich in die folgenden Kategorien einteilen.
Fehler in der Erweiterungskonfiguration
Dies ist die Konfiguration, die ein Organisationsadministrator vornimmt, wenn er einer Umgebung eine Erweiterung hinzufügt.
Wenn Sie beispielsweise die Cloud Logging-Erweiterung mit einer falschen Google Cloud-Projekt-ID konfigurieren, gibt Google Cloud Logging einen Fehler an die Erweiterung zurück. Details zu diesen Fehlern finden Sie in der Regel im Erweiterungslog.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler der Ebene 4xx- oder
5xx-Ebene angezeigt. Der Proxy-Editor zeigt jedoch keine Details
zur Ursache des Fehlers an, 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"
}
}
}
Nachweise in Erweiterungslogs
Wenn Details zu dieser Art von Fehler vorhanden sind, finden Sie sie in den Logeinträ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 in 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. Diese Fehler können je nach Konfiguration der Richtlinie zwei Formen annehmen:
Falsche Werte, die von der externen Ressource ausgewertet werden
Dies kann auftreten, wenn der Konfigurationsfehler für die Erweiterung gültig aussah, aber für die externe Ressource ungültig war. Wenn die Erweiterung beispielsweise eine falsche Datenbank-ID an Cloud Spanner übergibt, gibt Cloud Spanner einen Fehler zurück, der im Erweiterungslog protokolliert wird:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'Dies kann auch bei falscher Konfigurations-JSON im
<Input>Element der Richtlinie auftreten. Bei einigen Erweiterungen wird ein Teil der JSON von der Erweiterung verarbeitet und ein Teil an die Ressource übergeben. Die Konfigurations-JSON der Cloud Logging-Erweiterung enthält beispielsweise einmetadataObjekt, dessen Inhalt an Cloud Logging übergeben wird. Falsche Schlüsselnamen wietypanstelle vontypekönnen Fehler von der externen Ressource zurückgeben, die als Einträge im Erweiterungslog angezeigt werden:details: 'Resource type cannot be empty'Falsche Werte, die von der Erweiterung ausgewertet werden
Zu diesen Fehlern gehören Syntaxfehler in den von der Richtlinie ausgewerteten Teilen der
<Input>Element-JSON, Rechtschreibfehler im Aktionsnamen im<Action>Element usw. Diese Fehler werden in der Regel im Trace-Tool, aber nicht in den Erweiterungslogs angezeigt.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler der Ebene 4xx- oder
5xx-Ebene angezeigt. Der Proxy-Editor zeigt jedoch keine Details
zur Ursache des Fehlers an, 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"
}
}
}
Nachweise in Erweiterungslogs
Wenn die Richtlinienkonfiguration zu einem Verarbeitungsfehler in der externen Ressource führt, wird der Fehler in der Regel im Log angezeigt.
Fehler im Zusammenhang mit der Anfrage der Erweiterung an die Ressource
Dies ist ein Fehler, bei dem die Anfrage an die externe Ressource aus Gründen, die nicht mit der Erweiterung zusammenhängen, nicht erfolgreich war.
Angenommen, Sie fügen mit der Cloud Spanner-Erweiterung eine Zeile zur Datenbank hinzu, aber der Primärschlüsselwert der Zeile wird bereits in einer vorhandenen Zeile verwendet. Cloud Spanner gibt einen Fehler an die Erweiterung zurück, die den Fehler dem Erweiterungslog hinzufügt.
Nachweise im Trace-Tool
Im Proxy-Editor werden diese Fehler in der Regel als Fehler der Ebene 4xx-
oder 5xx-level angezeigt. Der Proxy-Editor zeigt jedoch keine
Details zur Ursache des Fehlers an, 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"
}
}
}
Nachweise in Erweiterungslogs
Das Log enthält in der Regel Einträge mit Nachrichten von der externen Ressource selbst. Der folgende Logeintrag von Cloud Spanner beschreibt den Fehler mit dem vorhandenen Primärschlüsselwert.
details: 'Row [jonesy42] in table user already exists'