Talend Management ConsoleでのWebhook
Webhookは、外部アプリケーションからの呼び出しに基づいてジョブタスクやプランの実行をトリガーします。
Webhookトリガーの使用は組織のセキュリティポリシーで許可されている場合のみにしてください。
- 認証は必要ないため、Webhookトリガーには認証情報を送信しないでください。
- 誰でもこのURLを使ってあなたのタスクをトリガーできてしまう恐れがあるため、WebhookのURLは秘密の場所に保管してください。
- 認証が必要な場合は、WebhookトリガーではなくAPIプログラムの使用を検討してください。
既に他のトリガーがある場合、Webhookは追加できません。タスクやプランの編集時に他のトリガーを削除してWebhookを追加するか、両方が必要な場合はタスクやプランをコピーすることもできます。
情報メモ注: Webhookを介してタスクを実行できるようにするには、そのソースジョブにresource_webhook_payloadというWebhookコンテキストパラメーターを含める必要があります。プランを実行するには、最初のステップの少なくとも1つのタスクに、コンテキストパラメーターを伴うソースジョブが含まれていることが必要です。
Webhookエンドポイントへの呼び出しはどれも、次のJSONストラクチャーでラップされ、resource_webhook_payloadパラメーターを介してジョブ実行に渡されます。
- タイプ: Content-Typeヘッダーから取得されるペイロードのメディアタイプ
- データ: ペイロードデータ
サポート対象のペイロードデータは次のとおりです。
- application/xml
- application/json
- application/x-www-form-urlencoded
- text/plain
- text/xml
ペイロードは配列として処理されます。ビッグデータジョブのペイロード合計サイズは5KBを超えてはなりません。
Talend Management ConsoleでWebhook URLを生成する時は、次のパラメーターを設定する必要があります。
- [Window threshold] (ウィンドウのしきい値): サービスへの呼び出し回数を定義します。
- [Window duration (in seconds)] (ウィンドウ継続時間(秒)): 最初のサービスコール後の秒数を定義します。
最初に発生するイベントで実行がトリガーされます。
情報メモ制約事項: 同じタスクまたはプランが実行キュー(ステータスが[Pending] (保留中)または[Running] (実行中)であるもの)に残れる回数は、60分間に最高50回までです。それを超える回数で実行されるようPublic APIやWebhookを介してタスクやプランをスケジュールしている場合、キューに新たに追加される実行は制限時間後にフェイルオーバーとなります。
例
ウィンドウサイズが2であれば、[Window threshold] (ウィンドウのしきい値)パラメーターで設定された時間のうちに連続する2つのペイロードがWebhookエンドポイントに送信されます。
{"param":"1"}
{"param":"2"}
ただし、タスクやプランの実行ではこれらを2つの別個のペイロードとしてではなく、1つの配列として受信します。
[
{"data":"{"param":"1"}","type":"application/x-www-form-urlencoded"},
{"data":"{"param":"2"}","type":"application/x-www-form-urlencoded"}
]
Webhookペイロードの二重引用符はエスケープされなくなりました。二重引用符がバックスラッシュ( \ )によってエスケープされているジョブがある場合は、<RemoteEngineInstallation>/etc/org.talend.ipaas.rt.jobserver.client.cfg設定ファイルで次のプロパティを設定してください。
job.ctx.params.passthrough=true
情報メモ注: webhookの呼び出しが成功すると、HTTP 204 (コンテンツなし)という応答が返されます。