Dépannage des fonctions externes pour GCP

Cette rubrique fournit des informations sur le dépannage des fonctions externes pour GCP.

Dans ce chapitre :

Problèmes relatifs à l’exécution indépendamment de la plate-forme

Les valeurs de retour du type de données ne correspondent pas aux valeurs de retour attendues

Lorsque vous transmettez des arguments vers ou depuis une fonction externe, assurez-vous que les types de données sont appropriés. Si la valeur envoyée ne peut pas correspondre au type de données reçues, la valeur peut être tronquée ou corrompue d’une autre manière.

Pour plus de détails, voir Assurez-vous que les arguments de la fonction externe correspondent aux arguments analysés par le service distant.

Erreur : les numéros de ligne ne sont pas dans l’ordre

Causes possibles

Les numéros de ligne que vous renvoyez dans chaque lot doivent être des entiers ascendants monotones à partir de 0. Les numéros des lignes d’entrée doivent également suivre cette règle, et chaque ligne de sortie doit correspondre à la ligne d’entrée correspondante. Par exemple, la sortie de la ligne de sortie 0 doit correspondre à l’entrée de la ligne d’entrée 0.

Solutions possibles

Assurez-vous que les numéros de ligne que vous renvoyez sont identiques à ceux que vous avez reçus et que chaque valeur de sortie utilise le numéro de ligne de l’entrée correspondante. Si cela ne fonctionne pas, il se peut que les numéros des lignes saisies ne soient pas corrects ou que vous n’ayez pas renvoyé les lignes dans le bon ordre.

Assurez-vous ensuite que les numéros de ligne de sortie commencent par 0, augmentent de 1 et sont en ordre.

Pour plus d’informations sur les formats d’entrée et de sortie des données, voir Formats des données d’entrée et de sortie des services à distance.

Erreur : « Error parsing JSON: Invalid response »

Causes possibles

La cause la plus probable est que le JSON renvoyé par le service distant (par exemple fonction AWS Lambda) n’est pas construit correctement.

Solutions possibles

Assurez-vous que la fonction externe renvoie un tableau de tableaux, avec un tableau interne renvoyé pour chaque ligne d’entrée reçue. Consultez la description du format de sortie sur Format de données reçu par Snowflake.

Erreur : Le format de la valeur retournée n’est pas JSON

Causes possibles

Votre valeur de retour inclut des guillemets doubles à l’intérieur de la valeur.

Solutions possibles

Bien que les chaînes JSON soient délimitées par des guillemets doubles, la chaîne elle-même ne doit pas commencer et se terminer par un guillemet dans la plupart des cas. Si les guillemets doubles intégrés sont incorrects, supprimez-les.

Erreur : la fonction a reçu le mauvais nombre de lignes

Causes possibles

Le service distant a tenté de renvoyer plus ou moins de lignes qu’il en a reçues. Même si la fonction est nominalement scalaire, elle peut recevoir plusieurs lignes dans le champ body du paramètre event et doit renvoyer exactement autant de lignes qu’elle a reçues.

Solution(s) possible(s)

Assurez-vous que le service distant renvoie une ligne pour chaque ligne qu’il reçoit.

Problèmes spécifiques à GCP

Erreur : La demande échoue avec “{« message »: »Audiences in Jwt are not allowed », »code »:403}”

Causes possibles

La valeur du champ google_audience de l’intégration API n’est pas autorisée.

Solutions possibles
  • Veuillez vérifier que la valeur google_audience de l’intégration API correspond au nom du service géré de votre API, qui doit être enregistré dans le champ « Identificateur du service géré » de la feuille de calcul de suivi.

  • Si vous avez ajouté un champ x-google-audiences à la section securityDefinitions de votre fichier de configuration API, assurez-vous que la valeur de x-google-audiences correspond à celle du champ google_audience de l’intégration API.

Pour plus d’informations sur l’authentification avec Google, veuillez consulter la documentation sur l’authentification du compte de service Google.

Erreur : La demande échoue avec “{« message »: »Jwt is missing », »code »:401} “

Causes possibles
  • La valeur du champ x-google-issuer dans le champ securityDefinitions du fichier de configuration peut ne pas correspondre à la valeur du champ API_GCP_SERVICE_ACCOUNT pour l’intégration API, tel qu’enregistrée dans la feuille de calcul de suivi.

  • La valeur de x-google-issuer peut contenir des espaces supplémentaires.

Solutions possibles
  • Mettez à jour x-google-issuer pour correspondre à API_GCP_SERVICE_ACCOUNT.

  • Supprimez les espaces inutiles.

Erreur : La demande échoue avec “403 Forbidden”

Causes possibles

Le compte de service utilisant la configuration ne dispose pas des autorisations appropriées sur le backend.

Solutions possibles

Mettez à jour les permissions du compte de service.