Problembehandlung bei externen Funktionen für GCP

Unter diesem Thema werden Informationen zur Problembehandlung von externen Funktionen auf GCP bereitgestellt.

Unter diesem Thema:

Plattformunabhängige Laufzeitprobleme

Rückgabewerte für Datentyp stimmen nicht mit 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.

Fehler: Zeilennummern nicht in korrekter Reihenfolge

Mögliche Ursachen

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

Mögliche Lösungen

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. Wenn dies nicht funktioniert, dann sind die eingegebenen Zeilennummern möglicherweise nicht korrekt oder Sie haben die Zeilen nicht in der richtigen Reihenfolge zurückgegeben.

Stellen Sie außerdem 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.

Fehler: „Error parsing JSON: Invalid response“

Mögliche Ursachen

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

Mögliche Lösungen

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

Fehler: Format des zurückgegebenen Wertes ist nicht JSON

Mögliche Ursachen

Ihr Rückgabewert enthält innerhalb des Wertes doppelte Anführungszeichen.

Mögliche Lösungen

Obwohl JSON-Zeichenfolgen durch doppelte Anführungszeichen getrennt sind, darf 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.

Fehler: Funktion hat die falsche Anzahl von Zeilen erhalten

Mögliche Ursachen

Der Remotedienst hat versucht, mehr oder weniger Zeilen zurückzugeben, als er erhalten hat. Auch wenn die Funktion nominell skalar ist, kann sie im Feld body des Parameters event mehrere Zeilen empfangen, und sie muss genau so viele Zeilen zurückgeben, wie sie empfangen hat.

Mögliche Lösungen

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

GCP-spezifische Probleme

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

Mögliche Ursachen

Der Wert im Feld google_audience der API-Integration ist nicht zulässig.

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.

Error: 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.

Error: Request fails with ‚403 Forbidden‘

Mögliche Ursachen

Das Dienstkonto, das die Konfiguration verwendet, verfügt nicht über die entsprechenden Berechtigungen auf dem Back-End.

Mögliche Lösungen

Aktualisieren Sie die Berechtigungen des Dienstkontos.