Conception d'Ultra Pipelines : Gestion des erreurs et des exceptions

4 min lire

Ceci est le troisième article de ma série sur les pipelines SnapLogic Ultra :

  1. Conception d'ultra-pipelines
  2. Types de vues

Un mécanisme robuste de gestion des erreurs est impératif pour éviter les échecs, la désactivation de la tâche Ultra Pipeline et une interruption de service. La gestion des erreurs peut être ajoutée aux Ultra Pipelines en suivant les lignes directrices suivantes :

  • Vues d'erreur : En ajoutant une vue d'erreur à tous les Snap d'application de point final crucial dans le pipeline et en renvoyant une réponse avec des messages d'erreur personnalisés, un code et un code d'état http, vous pouvez être informé des erreurs dans le traitement des documents des pipelines Ultra. Le Snap de mappeur utilisé dans le pipeline ci-dessous permet de personnaliser les informations relatives au contenu de l'erreur lorsque le Snap REST post échoue.
Traitement des erreurs d'ultra-pipeline
Le Snap mapper utilisé dans cette Ultra Pipeline permet de personnaliser les informations du contenu de l'erreur lorsque le Snap REST post échoue.
  • Code d'erreur standard : Les clients peuvent se mettre d'accord sur l'adoption de codes de réponse et de messages HTTP standard pour indiquer le succès ou l'échec d'une demande. Un fichier de consultation des codes d'erreur standard pourrait être utilisé pour renvoyer des réponses d'erreur spécifiques à différents stades du pipeline. Dans le pipeline ci-dessous, un code d'état HTTP différent est renvoyé pour chaque réponse d'erreur tout au long du pipeline ; par exemple, des en-têtes non valides donneront lieu à un code d'état de réponse HTTP 401 et une version non valide donnera lieu à un code 406.

Après avoir sélectionné un code d'état spécifique, il est possible d'obtenir des informations supplémentaires sur l'erreur en consultant un fichier de cette structure :

[{
“response codes”: [{
“400”: {
“error code”: “4000”,
“error message”: “Malformed request body or missing a required parameter”
}
}, {
“401”: {
“error code”: “4010”,
“error message”: “No valid session key or credentials provided”
}
}]
}]

  • Une tâche Ultra Pipeline imbriquée est créée pour renvoyer le contenu du fichier de consultation des codes d'erreur ; la tâche Ultra Pipeline imbriquée est appelée à l'aide d'un snap Rest GET intitulé "http error codes" (codes d'erreur http). La tâche Ultra Pipeline imbriquée est appelée à l'aide d'un snap Rest GET intitulé "http error codes". Le snap Mapper intitulé "error formatter" effectue une recherche sur l'objet code d'état du fichier et renvoie les informations pertinentes sur le code d'erreur et le message.
Ultra_Pipeline_noué
Une tâche Ultra Pipeline imbriquée est créée pour renvoyer le contenu du fichier de consultation des codes d'erreur.
  • Hiérarchie des documents : Chaque document entrant dans un Snap Ultra Pipeline doit conserver son cheminement dans le pipeline, ce qui permet de s'assurer que le document a été reçu, traité et répondu au maître du flux. Cela permet au maître de flux d'utiliser l'identifiant de corrélation pour relier la demande à la réponse. Toutefois, dans certains cas d'utilisation de données statiques provenant de fichiers ou de services web, le document peut perdre sa lignée et son identité, ce qui entraîne des échecs dus à la hiérarchie de la lignée. Un tel scénario peut être évité en utilisant une jointure avec une clé statique pour joindre les informations statiques à chaque document demandé. Il convient d'être prudent lors de l'utilisation de jointures dans les Ultra Pipelines, car ces derniers ne permettent pas le traitement par lots des documents ; chaque Snap dans un Ultra Pipeline ne doit traiter qu'un seul document à la fois. L'exemple ci-dessous montre l'utilisation d'une jointure avec un fichier de configuration statique pour le mappage des paramètres.
ultra pipeline join
Utilisation d'une jointure avec un fichier de configuration statique pour le mappage des paramètres dans un Ultra Pipeline
  • Tâches im briquées d'Ultra Pipeline - Les tâches imbriquées d'Ultra Pipeline peuvent être appelées à partir d'Ultra Pipelines à l'aide de Rest Get/Post Snaps. Toutefois, les tâches imbriquées d'Ultra Pipeline doivent être développées avec une gestion robuste des erreurs, de sorte que si un Snap de l'Ultra Pipeline imbriqué rencontre une erreur, il puisse être renvoyé au pipeline parent avec les informations sur le Snap qui a échoué dans le traitement du document. Pour ce faire, il convient d'ajouter des vues d'erreur à tous les Snap cruciaux de l'Ultra Pipeline imbriqué et d'introduire une vue d'erreur dans le Snap Rest Get qui appelle l'Ultra Pipeline imbriqué.
  • L'inclusion du document original de la demande en cas d'erreur permet de s'assurer que l'on dispose d'informations détaillées sur la demande à l'origine de l'erreur dans le pipeline.

Dans mon prochain article sur les meilleures pratiques de mise en œuvre de SnapLogic Ultra Pipeline, je traiterai des performances, de la mise à l'échelle et de la haute disponibilité.

Ancien ingénieur solutions senior chez SnapLogic

Nous recrutons !

Découvrez votre prochaine grande opportunité de carrière.