Problembehandlung bei externen Funktionen für GCP

Unter diesem Thema werden Informationen zur Problembehandlung für externe Funktionen bereitgestellt.

Unter diesem Thema:

Problembehandlung

Plattformunabhängige Symptome

Die tatsächlichen Rückgabewerte für einen Datentyp stimmen nicht mit den erwarteten Rückgabewerten überein

Achten Sie beim Übergeben von Argumenten an oder von einer externen Funktion darauf, dass die passenden Datentypen verwendet werden. Wenn der gesendete Wert nicht zum Datentyp des Empfängers passt, wird der Wert möglicherweise abgeschnitten oder auf andere Weise beschädigt.

Weitere Details dazu finden Sie unter Sicherstellen, dass Argumente der externen Funktion den Argumenten des Remotedienstes entsprechen.

Beim Aufrufen der Funktion mit SQL wird eine Meldung angezeigt, dass die Zeilennummerierung nicht korrekt ist

Mögliche Ursachen

Denken Sie daran, dass die von Ihnen innerhalb jedes Batches zurückgegebenen Zeilennummern monoton aufsteigende Ganzzahlen sein müssen, die bei 0 beginnen. Die Eingabezeilennummern müssen ebenfalls dieser Regel folgen, und jede Ausgabezeile muss mit der entsprechenden Eingabezeile übereinstimmen. So sollte beispielsweise die Ausgabe von Ausgabezeile 0 der Eingabe von Eingabezeile 0 entsprechen.

Mögliche Lösungen
  1. Stellen Sie sicher, dass die von Ihnen zurückgegebenen Zeilennummern mit den erhaltenen Zeilennummern übereinstimmen und dass jeder Ausgabewert die Zeilennummer der entsprechenden Eingabe verwendet. Das sollte funktionieren. Wenn dies nicht der Fall ist, sind möglicherweise die eingegebenen Zeilennummern nicht korrekt oder die Zeilen wurden nicht in der richtigen Reihenfolge zurückgegeben. Fahren Sie daher mit Schritt 2 fort.

  2. Stellen Sie sicher, dass die Ausgabezeilennummern bei 0 beginnen, um 1 erhöht werden und in der richtigen Reihenfolge sind.

Weitere Informationen zu Dateneingabe- und Datenausgabeformaten finden Sie unter Eingabe- und Ausgabedatenformate von Remotediensten.

Beim Versuch, die externe Funktion aufzurufen, wird die Meldung „Error parsing JSON: Invalid response“ angezeigt

Mögliche Ursachen

Die wahrscheinlichste Ursache ist, dass die vom Remotedienst zurückgegebenen JSON-Daten (z. B. AWS Lambda-Funktion) nicht korrekt erstellt wurde.

Mögliche Lösungen

Stellen Sie sicher, dass Sie ein Array von Arrays zurückgeben, wobei für jede empfangene Eingabezeile ein inneres Array zurückgegeben wird. Überprüfen Sie die Beschreibung des Ausgabeformats unter Von Snowflake empfangenes Datenformat.

Eine Fehlermeldung besagt, dass das Format des zurückgegebenen Werts nicht JSON ist

Mögliche Ursachen

Eine mögliche Ursache hierfür ist, dass Ihr Rückgabewert doppelte Anführungszeichen enthält.

Mögliche Lösungen

Obwohl JSON-Zeichenfolgen durch doppelte Anführungszeichen getrennt sind, sollte die Zeichenfolge selbst in den meisten Fällen nicht mit einem Anführungszeichen beginnen und enden. Wenn die eingebetteten doppelten Anführungszeichen falsch sind, entfernen Sie diese.

Eine Fehlermeldung besagt, dass die Funktion die falsche Anzahl von Zeilen erhält

Mögliche Ursachen

Der Remotedienst hat wahrscheinlich versucht, mehr oder weniger Zeilen zurückzugeben, als er erhalten hat. (Denken Sie daran, dass die Funktion, obwohl sie nominell skalar ist, möglicherweise im Feld „body“ des Parameters „event“ mehrere Zeilen empfängt und genau so viele Zeilen zurückgeben sollte, wie sie empfangen hat.)

Mögliche Lösungen

Stellen Sie sicher, dass der Remotedienst für jede erhaltene Zeile genau eine Zeile zurückgibt.

Plattformspezifische Symptome

Request fails with ‚{„message“:“Audiences in Jwt are not allowed“,“code“:403} ‚

Mögliche Ursachen
  • Dieser Fehler zeigt an, dass der Wert im Feld google_audience der API-Integration nicht zulässig ist.

Mögliche Lösungen
  • Überprüfen Sie, ob der google_audience-Wert der API-Integration mit dem Namen des verwalteten Dienstes Ihrer API übereinstimmt, der im Feld „Managed Service Identifier“ des Arbeitsblatts notiert sein sollte.

  • Wenn Sie ein x-google-audiences-Feld zum securityDefinitions-Abschnitt Ihrer API-Konfigurationsdatei hinzugefügt haben, stellen Sie sicher, dass der Wert in Feld x-google-audiences mit dem Wert im google_audience-Feld der API-Integration übereinstimmt.

Weitere Informationen zur Authentifizierung bei Google finden Sie in der Dokumentation zur Google-Dienstkonto-Authentifizierung.

Request fails with ‚{„message“:“Jwt is missing“,“code“:401}‘

Mögliche Ursachen
  • Der Wert des Feldes x-google-issuer im Feld securityDefinitions der Konfigurationsdatei stimmt möglicherweise nicht mit dem Wert des Feldes API_GCP_SERVICE_ACCOUNT der API-Integration (aufgezeichnet im Arbeitsblatt) überein.

  • Der Wert im Feld x-google-issuer kann zusätzliche Leerzeichen enthalten.

Mögliche Lösungen
  • Aktualisieren Sie den Wert für x-google-issuer, damit er mit dem Wert für API_GCP_SERVICE_ACCOUNT übereinstimmt.

  • Entfernen Sie unnötige Leerzeichen.

Request fails with ‚403 Forbidden‘

Mögliche Ursachen

Eine mögliche Ursache für diesen Fehler ist, dass das Dienstkonto, das die Konfiguration verwendet, nicht über die entsprechenden Berechtigungen auf dem Back-End verfügt.

Mögliche Lösungen

Aktualisieren Sie die Berechtigungen des Dienstkontos.