DataWorks は HTTP トリガーノードを提供します。これにより、OpenAPI 操作を呼び出すことで、外部環境 (ローカル環境やテナント間環境など) からワークフロー内の HTTP トリガーノードとその子孫ノードの実行をトリガーできます。この機能は、ローカルでのタスクのトリガーや、テナント間環境でのタスク依存関係の実行要件を満たすのに役立ちます。
製品紹介
HTTP トリガーノードは特殊なゼロロードノードであり、DataWorks OpenAPI の TriggerSchedulerTaskInstance を使用して、このノードとその子孫ノードのスケジューリングをトリガーできます。
トリガーメカニズム
HTTP トリガーノードは、その先祖ノードが期待どおりに実行され、外部スケジューリングシステムからスケジューリング命令を受け取った後にのみ、子孫ノードをトリガーできます。HTTP トリガーノードのトリガー方法については、「トリガーノードの使用図」をご参照ください。
トリガーノードの使用図
HTTP トリガーノードは、一般的に外部環境と DataWorks スケジューリングシステム間の通信に使用されます。
図の説明:
Data Development で、HTTP トリガーノードを含むワークフローを作成し、ノード間の依存関係を設定して、ワークフローをオペレーションセンターに公開します。
システムはスケジューリング時間に基づいて定期インスタンスを自動的に生成します。これらのインスタンスから HTTP トリガーノードの情報 (ノード ID やトリガー時間など) を取得できます。
この情報を渡し、Java または Python コード、あるいは API デバッグページを使用して OpenAPI 操作を呼び出し、ノードをトリガーします。特定のインスタンスとその後続のワークフローのみをトリガーするには、
TriggerTimeパラメーターを静的フィールドに設定します。すべてのインスタンスを動的にトリガーするには、TriggerTimeを動的変数に設定します。HTTP トリガーノードがトリガーコマンドを受信して検証すると、後続のノードを順番に実行します。
トリガー条件
HTTP トリガーノードは、以下の要件が満たされた場合にのみ実行できます:
HTTP トリガーノードによって定期インスタンスが生成されます。このインスタンスは、オペレーションセンターの [自動トリガーインスタンス] ページで確認できます。インスタンスが TriggerSchedulerTaskInstance API によって正常にトリガーされるまで、インスタンスは [トリガー待ち] 状態です。その子孫ノードは、
TriggerSchedulerTaskInstanceAPI が呼び出されて HTTP トリガーノードがトリガーされるまでブロックされます。HTTP トリガーノードが実行されると、その子孫ノードは順次実行されます。HTTP トリガーノードが依存するすべての親ノードが正常に実行されていること (インスタンスが成功状態であること)。
HTTP トリガーノードによって生成された定期インスタンスのスケジュール時刻に達していること。
HTTP トリガーノードが使用するスケジューリングリソースグループに、トリガー時に十分なリソースがあること。
HTTP トリガーノードが凍結ステータスでないこと。
[トリガー待ち] 状態の HTTP トリガーノードのみがトリガー可能であること (正常にトリガーされたノードは、再度トリガーされても再実行されません)。
注意事項
HTTP トリガーノードは、その先祖ノードが期待どおりに実行され、外部環境からスケジューリング命令を受け取った後にのみ、子孫ノードをトリガーできます。
外部環境が事前にスケジューリング命令を送信しても、先祖ノードの実行が完了していない場合、HTTP トリガーノードは子孫ノードをトリガーしません。システムは外部環境からのスケジューリング命令を保持し、先祖ノードの実行が完了した後に HTTP トリガーノードを介して子孫ノードをトリガーします。
説明外部環境からのトリガー命令は 24 時間のみ保持されます。24 時間以内に先祖ノードの実行が完了しない場合、トリガー命令は失われ、今回外部環境から送信されたスケジューリング命令は無効になります。
現在の HTTP トリガーノードインスタンスが正常にトリガーされ実行された後、2 回目のトリガーはできません。
前提条件
使用したい RAM ユーザーがワークスペースに追加されていること。
RAM ユーザーを使用してタスクを開発する場合、その RAM ユーザーをメンバーとしてワークスペースに追加し、[Develop] または [Workspace Administrator] ロールを割り当てる必要があります。Workspace Administrator ロールには必要以上の権限が含まれているため、割り当てる際には注意が必要です。メンバーの追加とロールの割り当て方法の詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
サーバーレスリソースグループがワークスペースに関連付けられていること。詳細については、「サーバーレスリソースグループの使用」ディレクトリのトピックをご参照ください。
HTTP トリガーノードを開発する前に、対応する HTTP トリガーノードを作成する必要があります。詳細については、「定期タスクの作成」をご参照ください。
制限事項
HTTP トリガーノード機能は、DataWorks Enterprise Edition 以上のバージョンでのみ利用可能です。DataWorks のバージョンに関する詳細については、「DataWorks のエディション」をご参照ください。
HTTP トリガーノードはタスクのトリガーにのみ使用され、計算最適化タスクとしては使用できません。タスクのトリガーと実行を実現するには、実行するタスクノードを HTTP トリガーノードの子孫ノードとして設定する必要があります。
HTTP トリガーノードの作成
新しい HTTP トリガーノードの作成
新しいノードの作成方法については、「HTTP トリガーノードの作成」をご参照ください。
HTTP トリガーノードの設定
新しい HTTP トリガーノードを作成した後、HTTP トリガーノード編集ページの右側にある [スケジューリング] で以下のパラメーターを設定します。その他のパラメーター設定については、「ノードのスケジューリング」をご参照ください。
パラメーター | 説明 |
リソースグループ | 関連付けたサーバーレスリソースグループを選択します。 |
インスタンス生成モード | [T+1 翌日] または [公開後すぐに生成] を選択できます。 |
HTTP トリガーノードはゼロロードノードであり、ノードコンテンツを記述する必要はありません。
HTTP トリガーノードの上流にノードがない場合、デフォルトの上流ノードはビジネスフローのルートノードになります。
HTTP トリガーノードの公開
スケジューリング設定が完了したら、完成した HTTP トリガーノードを本番環境に送信して公開できます。詳細については、「ノード/ワークフローの公開」をご参照ください。
公開されたタスクは、設定したスケジュールに従って定期的に実行されます。 で公開された定期タスクを表示し、タスクの O&M 操作を実行できます。詳細については、「オペレーションセンター入門」をご参照ください。
他のスケジューリング環境でのトリガー設定
外部スケジューリング環境でトリガーを設定する場合、取得した HTTP トリガーノードインスタンスのパラメーターを次のいずれかの方法で設定し、TriggerSchedulerTaskInstance 操作を呼び出して HTTP トリガーノードをトリガーする必要があります。
HTTP トリガーノードのインスタンスパラメーターの取得
HTTP トリガーノードの設定時に選択したインスタンス生成モードに基づいて、[オペレーションセンター] で HTTP インスタンスのパラメーター情報を表示および記録できます。
T+1 翌日:翌日にオペレーションセンターに移動して、HTTP インスタンスのパラメーター情報を表示および記録する必要があります。
公開後すぐに生成:すぐに [オペレーションセンター] に移動して、HTTP インスタンスのパラメーター情報を表示および記録できます。
オペレーションセンターページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[オペレーションセンターへ移動] をクリックします。
左のナビゲーションバーで、 をクリックして、[定期実行インスタンス] ページに移動します。
リストから作成した HTTP トリガーノードインスタンスを見つけ、インスタンスの [タスク ID] と [スケジュール時刻] を記録します。
説明HTTP トリガーノードインスタンスの名前にマウスカーソルを合わせると、インスタンスの [タスク ID] が表示されます。
関連ドキュメント
DataWorks は HTTP トリガーノード機能を提供しており、テナント間シナリオでのタスクのトリガーと実行を実現できます。詳細については、「HTTP トリガーノードを使用してテナント間でノード実行をトリガーする」をご参照ください。

