Webhooks in Talend Management Console
Verwenden Sie Webhooks, um Job-Tasks oder Pläne basierend auf externen Anwendungsaufrufen auszulösen.
- Schließen Sie keine sensiblen Anmeldedaten in eine Webhook-Trigger-Anforderung ein, da diese keinerlei Authentifizierung erfordert.
- Bewahren Sie die Webhook-URL an einem sicheren Ort auf, da sie von beliebigen Benutzern zum Auslösen Ihrer Tasks verwendet werden kann.
- Sollte eine Authentifizierung erforderlich sein, dann ziehen Sie die Verwendung einer API anstelle eines Webhook-Triggers in Betracht.
Sie können keinen Webhook hinzufügen, wenn Sie bereits über andere Trigger-Typen verfügen. Zum Hinzufügen eines Webhooks löschen Sie vorhandene Trigger oder duplizieren Sie die Task oder den Plan, wenn beide Trigger-Typen benötigt werden.
Webhook-spezifische Parameter
Damit ein Webhook verwendet werden kann, muss der Quell-Job den Kontextparameter resource_webhook_payload definieren. Für Pläne muss mindestens eine Task im ersten Schritt einen Quell-Job mit diesem Parameter aufweisen.
Payloads werden als Arrays mit einer maximalen Größe von 5 KB für Big Data-Jobs verarbeitet. Unterstützte Payload-Typen sind u. a. JSON, XML und einfacher Text. Weitere Informationen finden Sie unter Webhook-Payload.
Bei der Generierung einer Webhook-URL in Talend Management Console müssen Sie folgende Parameter konfigurieren:
- Window threshold (Fensterschwellenwert): Legt die Anzahl der Dienstaufrufe an die Gruppe innerhalb eines Zeitfensters fest.
Beispielsweise werden bei einer Fenstergröße von 2 während des im Parameter Window duration (Fensterdauer) festgelegten Zeitfensters zwei aufeinander folgende Payloads an den Webhook-Endpunkt gesendet:
{"param":"1"} {"param":"2"}
Die Task- bzw. Planausführung empfängt diese jedoch nicht als zwei separate Payloads, sondern als Array:[ {"data":"{"param":"1"}","type":"application/x-www-form-urlencoded"}, {"data":"{"param":"2"}","type":"application/x-www-form-urlencoded"} ]
- Window duration(in seconds) (Zeitfensterdauer (in Sekunden)): Gibt das Zeitfenster (in Sekunden) für die Gruppierung von Dienstaufrufen an.
Das zuerst auftretende Ereignis löst die Ausführung aus.
job.ctx.params.passthrough=true
Ein erfolgreicher Webhook-Aufruf gibt die HTTP-Antwort 204 (No Content) (204 (Kein Inhalt)) zurück.
- Salesforce: Aufrufe mit Salesforce-spezifischen Payloads (die z. B. die soap.sforce.com-Referenzen enthalten) antworten mit 200 OK anstelle von 204 Kein Inhalt, auch wenn der Antwortkörper leer ist.
- Dropbox: Wenn der User-Agent-Header DropboxWebhooks/1.0 in die Anforderung eingeschlossen wird, antwortet der Webhook mit 200 OK und schließt den Wert des Parameters challenge in den Antwortkörper ein. Beispiel: Für einen Aufruf wiesieht der Antwortkörper wie folgt aus:
GET https://webhooks.eu.cloud.talend.com/mywebhook/11fe60a514414a2a8b938b29084c4a29?challenge=parameter User-Agent: DropboxWebhooks/1.0
Response: parameter Content-Type: text/plain;charset=UTF-8 Content-Length: 9
Webhook-Trigger-Workflow
-
Richten Sie den Webhook-Kontextparameter ein.
Sie definieren einen spezifischen Kontextparameter, resource_webhook_payload, im Job, um eingehende Webhook-Daten zu verarbeiten.
-
Generieren Sie eine Webhook-URL.
Sie generieren eine Webhook-URL in Talend Management Console und konfigurieren Window threshold (Fensterschwellenwert) (Anzahl der Aufrufe) und Window duration (Fensterdauer) (Zeitraum in Sekunden).
-
Teilen Sie die Webhook-URL.
Sie stellen die generierte Webhook-URL an externe Systeme oder Anwendungen bereit, die sie zum Senden von Payloads verwenden.
-
Das externe System ruft die Webhook-URL auf.
Payloads werden von externen Systemen an den Webhook-Endpunkt gesendet.
-
Talend Management Console verarbeitet die Payloads, um sie in Ihrem Job zu verwenden.
Eingehende Payloads werden analysiert und in einen Array konvertiert, der dem von der Variablen resource_webhook_payload erwarteten Schema entspricht.
-
Die Task- bzw. Planausführung wird ausgelöst.
Der Webhook löst die Ausführung entsprechend den konfigurierten Parametern aus.
-
Die Webhook-URL gibt eine Antwort an das externe System zurück.
Der Webhook-Endpunkt sendet eine HTTP-Antwort 204 Kein Inhalt oder 200 OK.