外部スケジューリングシステムを使用していて、スケジューリングシステム内のノードが実行された後に DataWorks ノードをトリガーする場合、DataWorks の HTTP トリガーノードを使用して DataWorks ノードをトリガーできます。このトピックでは、外部スケジューリングシステムを使用して DataWorks ノードをトリガーする場合に、DataWorks の HTTP トリガーノードを使用する方法について説明します。また、HTTP トリガーノードを使用する際の注意事項についても説明します。
前提条件
DataWorks Enterprise Edition 以上がアクティブ化されている。
ワークフローが作成されている。HTTP トリガーノードによってトリガーされる必要がある計算ノードが作成されている。このトピックでは、ODPS SQL ノードが計算ノードとして使用されます。 ODPS SQL ノードの作成方法の詳細については、「MaxCompute SQL タスクを開発する」をご参照ください。
背景情報
外部スケジューリングシステムは、次の典型的なシナリオでノードをトリガーするために使用されます。
HTTP トリガーノードには、ワークフローのルートノード以外の祖先ノードがありません。
このシナリオでは、HTTP トリガーノードを作成した後、外部スケジューリングシステムでトリガーを構成する必要があります。次に、DataWorks の各ノードのスケジューリングプロパティを構成する必要があります。詳細については、「HTTP トリガーノードを作成する」および「外部スケジューリングシステムでトリガーを構成する」をご参照ください。HTTP トリガーノードには祖先ノードがあります。
このシナリオでは、次の点に注意してください。HTTP トリガーノードを作成した後、外部スケジューリングシステムでトリガーを構成する必要があります。次に、DataWorks の各ノードのスケジューリングプロパティを構成する必要があります。詳細については、「HTTP トリガーノードを作成する」および「外部スケジューリングシステムでトリガーを構成する」をご参照ください。
デフォルトでは、HTTP トリガーノードはワークフローのルートノードを祖先ノードとして使用します。 HTTP トリガーノードの祖先ノードは、必要なノードに手動で変更する必要があります。
HTTP トリガーノードは、HTTP トリガーノードの祖先ノードが想定どおりに実行され、HTTP トリガーノードが外部スケジューリングシステムからスケジューリング命令を受信した後にのみ、その子孫ノードをトリガーできます。
HTTP トリガーノードの祖先ノードの実行が完了する前に、HTTP トリガーノードが外部スケジューリングシステムからスケジューリング命令を受信した場合、HTTP トリガーノードはその子孫ノードをトリガーしません。 DataWorks スケジューリングシステムは、外部スケジューリングシステムからのスケジューリング命令を保持し、祖先ノードの実行が完了した後に、子孫ノードをトリガーするように HTTP トリガーノードをスケジュールします。
重要外部スケジューリングシステムからのスケジューリング命令は 24 時間のみ保持できます。祖先ノードの実行が 24 時間以内に完了しない場合、外部スケジューリングシステムからのスケジューリング命令は無効になり、破棄されます。
制限事項
HTTP トリガーノードは、DataWorks Enterprise Edition 以上でのみサポートされています。 DataWorks エディションの詳細については、「DataWorks エディション間の違い」をご参照ください。
インスタンス生成モード パラメーターは、HTTP トリガーノードに対して 翌日 のみに設定でき、データがバックフィルされるときに生成されるデータバックフィルインスタンスはトリガーできません。したがって、HTTP トリガーノードは、HTTP トリガーノードが本番環境にデプロイされた翌日に、外部スケジューリングシステムによってトリガーできます。
HTTP トリガーノードは、他の計算ノードをトリガーするノードとしてのみ機能します。 HTTP トリガーノードを計算ノードとして使用することはできません。トリガーする必要のあるノードを、HTTP トリガーノードの子孫ノードとして構成する必要があります。
ワークフローの作成と実行後に HTTP トリガーノードを再実行する場合は、外部スケジューリングシステムを有効にして、スケジューリング命令を再送信する必要があります。 HTTP トリガーノードを再実行しても、成功状態にある子孫ノードの実行はトリガーされません。
ワークフローの作成と実行後、一定期間内に HTTP トリガーノードの子孫ノードの実行結果を取得する場合は、子孫ノードのデータをバックフィルする必要があります。詳細については、「データをバックフィルし、データバックフィルインスタンスを表示する(新バージョン)」をご参照ください。外部スケジューリングシステムは、データをバックフィルするためにスケジューリング命令を送信する必要はありません。代わりに、HTTP トリガーノードは、子孫ノードのデータバックフィル操作を直接トリガーします。
HTTP トリガーノードは、中国(杭州)、中国(上海)、中国(北京)、、中国(深セン)、中国(成都)、中国(香港)、日本(東京)、シンガポール、マレーシア(クアラルンプール)、ドイツ(フランクフルト)、米国(シリコンバレー)の各リージョンでサポートされています。
備考
HTTP トリガーノードは、次の要件が満たされている場合にのみ実行できます。
HTTP トリガーノードに対して自動トリガーインスタンスが生成されます。インスタンスは、オペレーションセンターの [サイクルインスタンス] ページにあります。 RunTriggerNode 操作が正常に呼び出されてインスタンスが実行されるまで、インスタンスは待機状態です。 HTTP トリガーノードの子孫ノードは、RunTriggerNode 操作が正常に呼び出されて HTTP トリガーノード用に生成されたインスタンスが実行されるまでブロックされます。
HTTP トリガーノードが依存するすべての祖先ノードが想定どおりに実行されます。祖先ノードのステータスは「成功」です。
HTTP トリガーノード用に生成された自動トリガーインスタンスのスケジュール時刻になります。
HTTP トリガーノードの実行時に、十分なスケジューリングリソースが使用可能です。
HTTP トリガーノードのステータスは「フリーズ」ではありません。
HTTP トリガーノードは、「保留中」状態の場合にのみトリガーできます。 HTTP トリガーノードがトリガーされると、再度トリガーすることはできません。
HTTP トリガーノードを作成する
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
[DataStudio] ページで、ポインターを
アイコンの上に移動し、 を選択します。または、HTTP トリガーノードを作成するワークフローを見つけ、ワークフロー名をクリックし、[一般] を右クリックして、 を選択します。
[ノードの作成] ダイアログボックスで、[パス] パラメーターと [名前] パラメーターを構成します。
- [確認] をクリックします。
ノードの構成タブで、右側のナビゲーションウィンドウの [プロパティ] をクリックします。 [プロパティ] タブで、ノードのスケジューリングプロパティを構成します。詳細については、「基本プロパティを構成する」をご参照ください。
説明デフォルトでは、HTTP トリガーノードはワークフローのルートノードを祖先ノードとして使用します。 HTTP トリガーノードの祖先ノードは、必要なノードに手動で変更する必要があります。
- ノードを保存してコミットします。重要 再実行[再実行] パラメーターと [親ノード] パラメーターは、ノードをコミットする前に タブで構成する必要があります。
- 上部ツールバーの
アイコンをクリックして、ノードを保存します。 - ツールバーの
アイコンをクリックします。 - [ノードのコミット] ダイアログボックスで、[変更の説明] パラメーターを構成します。
- [OK] をクリックします。
使用しているワークスペースが標準モードの場合は、コミット後に右上隅にある [デプロイ] をクリックしてノードをデプロイする必要があります。詳細については、「ノードをデプロイする」をご参照ください。 - 上部ツールバーの
- ノードで O&M 操作を実行します。詳細については、「自動トリガーノードで基本的な O&M 操作を実行する」をご参照ください。
外部スケジューリングシステムでトリガーを構成する
外部スケジューリングシステムでトリガーを構成する場合、次の 3 つの方法のいずれかで RunTriggerNode 操作(2020-05-18 バージョン)を呼び出して、HTTP トリガーノードの実行をトリガーできます。
Alibaba Cloud SDK for Java
Alibaba Cloud SDK for Java をインストールします。詳細については、「Alibaba Cloud SDK V1.0 for Java を使い始める」をご参照ください。
DataWorks SDK for Java を使用するには、次の Project Object Model(POM)構成を指定します。
<dependency> <groupId>com.aliyun</groupId> <artifactId>dataworks_public20200518</artifactId> <version>8.0.0</version> </dependency>次の図に示すサンプルコードを使用して、コード内のパラメーターを構成します。
RunTriggerNode 操作のデバッグページ にアクセスし、[SDK サンプルコード] タブで完全なサンプルコードを表示できます。

Alibaba Cloud SDK for Python
Alibaba Cloud SDK for Python をインストールします。詳細については、「Alibaba Cloud SDK V1.0 for Python と統合する」をご参照ください。
次のコマンドを実行して、DataWorks SDK for Python をインストールします。
pip install aliyun-python-sdk-dataworks-public==2.1.2次の図に示すサンプルコードを使用して、コード内のパラメーターを構成します。
RunTriggerNode 操作のデバッグページ にアクセスし、[SDK サンプルコード] タブで完全なサンプルコードを表示できます。

API 操作
API 操作の詳細については、「RunTriggerNode」をご参照ください。