WebHooks dans Talend Management Console
Utilisez les WebHooks pour déclencher des tâches ou des plans de Jobs basés sur les appels d'applications externes.
- N'incluez pas d'identifiants sensibles à la casse dans la requête de déclenchement de WebHook, car un déclencheur de WebHook ne nécessite pas d'authentification.
- Maintenez l'URL du WebHook sécurisée, car elle peut être utilisée par n'importe quelle personne afin de déclencher vos tâches.
- Si l'authentification est requise, utilisez une API au lieu d'un déclencheur de WebHook.
Vous ne pouvez ajouter un WebHook si vous avez déjà d'autres types de déclencheurs. Pour ajouter un WebHook, supprimez des déclenchements existants ou dupliquez la tâche ou le plan si les deux types de déclenchements sont requis.
Paramètres spécifiques au WebHook
Pour utiliser un WebHook, le Job source doit définir le paramètre de contexte resource_webhook_payload. Pour les plans, au moins une tâche de la première étape doit avoir un Job source avec ce paramètre.
Les payloads sont traités comme des tableaux, avec une taille maximale de 5 Ko pour les Jobs Big Data. Les types de payloads supportés sont JSON, XML et plein texte. Pour plus d'informations, consultez Payload de WebHook.
Lorsque vous générez une URL de WebHook dans Talend Management Console, configurez les paramètres suivants :
- Window threshold (Seuil de la fenêtre) : définit le nombre d'appels de service à regrouper dans une fenêtre de temps.
Par exemple, si la taille de la fenêtre est 2, au cours du temps configuré dans le paramètre Window threshold (Seuil de la fenêtre), deux payloads consécutifs sont envoyés à l'endpoint du WebHook :
{"param":"1"} {"param":"2"}Cependant, l'exécution de la tâche ou du plan ne les reçoit pas comme des payloads séparés mais comme un tableau :[ {"data":"{"param":"1"}","type":"application/x-www-form-urlencoded"}, {"data":"{"param":"2"}","type":"application/x-www-form-urlencoded"} ] - Window duration(in seconds) (Durée de la fenêtre (en secondes) : spécifie l'intervalle de temps (en secondes) pour le regroupement des appels de services.
Le premier événement déclenche l'exécution.
job.ctx.params.passthrough=trueUn appel de WebHook réussi retourne une réponse HTTP 204 (No Content).
- Salesforce : Les appels avec des payloads spécifiques à Salesforce (par exemple, contenant des références à soap.sforce.com) répondent par 200 OK au lieu de 204 No Content, même lorsque le corps de la réponse est vide.
- Dropbox : Lorsque l'en-tête de l'agent utilisateur DropboxWebhooks/1.0 est compris dans la requête, le WebHook répond par 200 OK et inclut la valeur de paramètre challenge dans le corps de la réponse. Par exemple, pour un appel similaire à celui-ci :Le corps de la réponse ressemble à ceci :
GET https://webhooks.eu.cloud.talend.com/mywebhook/11fe60a514414a2a8b938b29084c4a29?challenge=parameter User-Agent: DropboxWebhooks/1.0Response: parameter Content-Type: text/plain;charset=UTF-8 Content-Length: 9
Workflow de déclenchement du WebHook
-
Configurez le paramètre de contexte du WebHook.
Vous définissez un paramètre de contexte spécifique, resource_webhook_payload, dans le Job, pour traiter les données entrantes du WebHook.
-
Générer une URL de WebHook
Vous générez une URL de WebHook dans Talend Management Console et configurez Window threshold (Seuil de la fenêtre) (nombre d'appels) et Window duration (Durée de la fenêtre) (intervalle de temps en secondes).
-
Partagez l'URL du WebHook.
Fournissez l'URL générée du WebHook aux systèmes externes ou aux applications l'utilisant pour envoyer des payloads.
-
Un système externe appelle l'URL du WebHook.
Les payloads sont envoyés à l'endpoint de WebHook par les systèmes externes.
-
Talend Management Console traite les payloads pour les utiliser dans votre Job.
Les payloads entrants sont parsés et convertis en un tableau conforme au schéma attendu par la variable resource_webhook_payload.
-
L'exécution de la tâche ou du plan est déclenchée.
Le WebHook déclenche l'exécution en fonction des paramètres configurés.
-
L'URl du WebHook retourne une réponse au système externe.
L'endpoint du WebHook envoie une réponse HTTP 204 No Content ou 200 OK.