すべてのプロダクト
Search
ドキュメントセンター

DataWorks:HTTP トリガーノードによるクロステナントノードの実行

最終更新日:Jun 11, 2026

DataWorks は、異なるテナント間でタスクの実行をトリガーするための HTTP トリガーノードを提供します。このトピックでは、DataWorks で HTTP トリガーノードを設定し、クロステナントのワークフローをオーケストレーションする方法について説明します。

背景情報

多くの組織では、データ処理と分析のワークフローが、複数のテナントにまたがって、または同一テナント内の異なるリージョンで実行されています。 DataWorks では、これらのシナリオをサポートするために HTTP トリガーノードを提供しています:

  • 異なるテナント環境間で依存タスクをオーケストレーションします。

  • 同一テナント内の複数リージョンにある、異なるスケジューリングシステム間でワークフローを連携します。例えば、システム B のワークフローは、システム A のノードがタスクを完了した後にのみ開始できます。

次の図は、クロステナントシナリオにおけるトリガーメカニズムの仕組みを示しています。

image

図の説明 :テナント B 環境のワークフローには HTTP トリガーノードが含まれており、オペレーションセンターにデプロイされています。ワークフローの実行時、上流ノードはスケジュールに基づいて順に実行されます。実行が HTTP トリガーノードに到達すると、そのノードと下流タスクは待機状態になります。HTTP トリガーノードがテナント A からのトリガーコマンドを受信して検証すると、HTTP トリガーノードと下流タスクが順に実行を開始します。

前提条件

  • 2 つのテナント環境があり、それぞれに個別のルートアカウントがあること。

  • 各環境でワークスペースを作成していること。

  • 各環境のワークスペースにサーバーレスリソースグループを関連付けていること。

  • トリガー元のワークスペースに関連付けられているサーバーレスリソースグループの VPC に、Internet NAT Gateway と EIP を 設定 していること。

    重要

    シェルノードが HTTP トリガーノードをトリガーする場合、トリガーコマンドはパブリックインターネット経由で送信する必要があります。

  • トリガーコマンドを送信するシェルノードを含むワークスペースに、MaxCompute コンピューティングリソースを関連付けていること。詳細については、「コンピューティングリソースの管理」をご参照ください。

注意事項

  • HTTP トリガーノードはトリガーとしてのみ機能します。このノードにコードを設定する必要はありません。

  • ワークスペースのタイプに一致する例を参照してください:

    • [新しいバージョンのData Development (Data Studio) を使用する]:Data Studio (新バージョン) の例を参照してください。

    • 対象新しいバージョンのData Development (Data Studio) を使用する: 以前の Data Studio の例に従ってください。

      説明

      新しいバージョンのData Development (Data Studio) を使用する しないワークスペースでは、http トリガーノードは DataWorks エンタープライズ版でのみ利用可能です。

Data Studio の例

テナント A からテナント B の Data Studio ワークスペース内のノードをトリガーするには、以下の手順に従ってください。

テナント B:HTTP トリガーワークフローの作成

テナント B のワークスペースで、リモートでトリガーできるワークフローを作成します。このワークフローには、トリガーコマンドを受信するための HTTP トリガーノードと、下流で実行される ビジネスノード を含める必要があります。このトピックでは、シェルノードを例として使用し、クロステナントトリガーが機能することを確認します。

  1. Data Studio に移動します。

    DataWorks ワークスペースリストに移動し、上部のナビゲーションバーで対象のリージョンに切り替えます。対象のワークスペースを見つけ、Operation 列で ショートカット > [Data Studio] をクリックして Data Studio を開きます。

  2. ワークフローを作成します。

    1. 左側メニューで、image アイコンをクリックします。Project Directory の右側にある image アイコンをクリックし、Create Workflow を選択します。Create Workflow ダイアログボックスが表示されます。

    2. Create Workflow ダイアログボックスで、ワークフローの Name を入力します。この例では、HTTP_Workflow を使用します。Confirm をクリックしてワークフローエディターを開きます。

  3. ノードを作成します。

    1. ワークフローエディターキャンバスで、Create Node パネルから、General > HTTP TriggerノードとGeneral > [シェル]ノードをキャンバスにドラッグします。

    2. シェルノードを HTTP トリガーノードの下流ノードとして接続します。

  4. シェルノードを編集します。

    重要

    HTTP トリガーノードはトリガーとしてのみ機能し、コードの設定は不要です。

    1. シェルノードにカーソルを合わせ、Open Node をクリックします。ノードエディタータブで、次のコードを入力します:

      echo "DataWorks";
    2. 右側の Scheduling Settings パネルで、Resource Group をワークスペースに関連付けられているサーバーレスリソースグループに設定します。

    3. タブ上部のツールバーで、Save をクリックします。

  5. ワークフローをデプロイします。

    1. [プロジェクトディレクトリ] で、作成した HTTP_Workflow ワークフローを見つけます。右側の Scheduling Settings パネルで、Instance generation methodInstant generation after publishing に設定します。

    2. ツールバーで image アイコンをクリックしてデプロイパネルを開きます。Start Release Production をクリックします。タスクはデプロイワークフローに従ってデプロイされます。詳細については、「ノードとワークフローのデプロイ」をご参照ください。

  6. HTTP インスタンスのパラメーターを記録します。

    HTTP トリガーノードはすぐに 定期インスタンス を生成するため、オペレーションセンター に移動してパラメーターを表示および記録できます。

    1. [オペレーションセンター] ページに移動します。

      DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[データモデリングと開発] > [オペレーションセンター] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[オペレーションセンターに移動] をクリックします。

    2. 左側のナビゲーションペインで、Auto Triggered Task O&M > Cycle Examples をクリックして Cycle Examples ページに移動します。

    3. リストで、作成された HTTP トリガーノードインスタンスを見つけます。その [タスク ID][スケジュール時刻] を記録します。

      説明

      HTTP トリガーノードインスタンスの名前にカーソルを合わせると、その タスク ID が表示されます。

ローカル環境:サンプルコードの準備

  1. pom 依存関係を追加します。

    TriggerSchedulerTaskInstance デバッグページに移動します。[SDK の例] タブで、完全な SDK インストール情報 を確認します。

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.example.demo.CrossTenantTriggerSchedulerTaskInstance</mainClass>  <!-- ここをメインクラスに置き換えてください -->
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase> <!-- package フェーズで実行されます -->
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>dataworks_public20240518</artifactId>
                <version>6.2.0</version>
            </dependency>
        </dependencies>
    重要

    コードの開発が完了したら、mainClass パラメーターをメインの Java クラスの名前に置き換える必要があります。名前は、パッケージ名を含む完全修飾クラス名である必要があります。例: com.example.demo.CrossTenantTriggerSchedulerTaskInstance

  2. コードを開発します。

    package com.example.demo;
    import com.aliyun.dataworks_public20240518.Client;
    import com.aliyun.dataworks_public20240518.models.TriggerSchedulerTaskInstanceRequest;
    import com.aliyun.dataworks_public20240518.models.TriggerSchedulerTaskInstanceResponse;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    public class CrossTenantTriggerSchedulerTaskInstance {
        // Alibaba Cloud DataWorks クライアントを作成するメソッド。
        public static Client createClient20240518(String accessId, String accessKey, String endpoint) throws Exception {
            // OpenAPI 設定オブジェクトを初期化します。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
            config.setAccessKeyId(accessId); // AccessKey ID を設定します。
            config.setAccessKeySecret(accessKey); // AccessKey Secret を設定します。
            config.setEndpoint(endpoint); // サービスエンドポイントを設定します。
            return new Client(config); // 初期化されたクライアントインスタンスを返します。
        }
        // DataWorks ノードの実行をトリガーするメソッド。
        public static TriggerSchedulerTaskInstanceResponse runTriggerScheduler(Client client, Long nodeId, String EnvType,Long TriggerTime) throws Exception {
            TriggerSchedulerTaskInstanceRequest request = new TriggerSchedulerTaskInstanceRequest(); // API リクエストオブジェクトを作成します。
            request.setTaskId(nodeId); // トリガーするノードの ID を設定します。
            request.setEnvType(EnvType); // プロジェクト環境を設定します。
            request.setTriggerTime(TriggerTime); // スケジュールされたトリガー時刻 (ミリ秒単位のタイムスタンプ) を設定します。
            RuntimeOptions runtime = new RuntimeOptions(); // ランタイムオプションを初期化します。
            return client.triggerSchedulerTaskInstanceWithOptions(request, runtime); // API 呼び出しを実行し、レスポンスを返します。
        }
        // プログラムのエントリポイント。
        public static void main(String[] args) throws Exception {
            // ノード ID を初期化します (サンプル値)。
            String nodeId1 = "";
            // プロジェクト環境を初期化します (サンプル値)。
            String EnvTypeStr = "";
            // スケジュール時刻を初期化します (サンプル値)。
            String cycTimeStr = "";
            // コマンドライン引数を処理し、nodeId1、EnvTypeStr、cycTimeStr に割り当てるループ。
            int i;
            for(i = 0; i < args.length; ++i) {
                if (i == 0) {
                    nodeId1 = args[i];
                } else if (i == 1) {
                    EnvTypeStr = args[i];
                }else if (i == 2) {
                    cycTimeStr = args[i];
                }
            }
            // 文字列をノード ID の Long 型に変換します。
            Long nodeId = Long.parseLong(nodeId1);
            // 使用方法を出力します。
            System.out.println("Usage: java -jar test-1.0-SNAPSHOT.jar nodeId EnvTypeStr cycTimeStr");
            // スケジュール時刻を解析し、タイムスタンプに変換します。
            SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sdft.parse(cycTimeStr)); // 時刻文字列を解析します。
            Long cycTime = calendar.getTimeInMillis(); // 時刻をミリ秒単位で取得します。
            // デバッグ情報 (タイムスタンプ) を出力します。
            System.out.println("Scheduled timestamp: " + cycTime);
            // Alibaba Cloud サービスパラメーターを設定します。
            String endpoint = "dataworks.cn-hangzhou.aliyuncs.com"; // サービスエンドポイント。
            String accessId = "xxx"; // AccessKey ID。
            String accessKey = "xxx"; // AccessKey Secret。
            // Alibaba Cloud クライアントインスタンスを作成します。
            Client client = createClient20240518(accessId, accessKey, endpoint);
            // トリガーノード操作を実行します。
            TriggerSchedulerTaskInstanceResponse response = runTriggerScheduler(client, nodeId,EnvTypeStr, cycTime);
            // API レスポンスを JSON 形式で出力します。
            System.out.println(com.aliyun.teautil.Common.toJSONString(com.aliyun.teautil.Common.toMap(response)));
        }
    }

    上記のコードの endpointaccessIdaccessKey パラメーターを、次の表の説明に従って実際の値に置き換えてください。

    パラメーター

    説明

    endpoint

    対象の HTTP トリガーノードのワークスペースがあるリージョンのサービスエンドポイント。エンドポイントのリストについては、「Alibaba Cloud OpenAPI Developer Portal」をご参照ください。

    accessId

    対象の HTTP トリガーノードを所有する Alibaba Cloud アカウントの AccessKey ID

    DataWorks コンソールにログインします。右上のプロフィール画像にカーソルを合わせ、AccessKey に移動して、対象の HTTP トリガーノードに関連付けられている RAM ユーザーAccessKey IDAccessKey Secret を取得できます。

    警告

    ルートアカウント の AccessKey ペアは完全な権限を付与します。漏洩した AccessKey ペアは高いセキュリティリスクをもたらします。対象の ワークスペース に対する ワークスペース管理者 権限のみを持つ RAM ユーザー の AccessKey ペアを使用することを推奨します。

    accessKey

    対象の HTTP トリガーノードを所有する Alibaba Cloud アカウントの AccessKey Secret

  3. 上記のコードを、jar-with-dependencies.jar で終わる JAR ファイルにパッケージ化します。

テナント A:シェルノードの設定

テナント A のワークスペースで、トリガーコマンドを送信するためのシェルノードを作成および設定します。

  1. Data Studio に移動します。

    DataWorks ワークスペースリストに移動し、トップナビゲーションバーで対象のリージョンに切り替えます。 対象のワークスペースを見つけ、Operation 列で ショートカット > [データスタジオ] をクリックしてデータスタジオを開きます。

  2. JAR リソースをアップロードします。

    1. 左側メニューで、image アイコンをクリックして [リソース管理] に移動します。

    2. Resource Management ページで、Create ボタンまたは image アイコンをクリックし、New Resource > [MaxCompute Jar] を選択します。

    3. [新規リソースと関数] ダイアログボックスで、リソース名を http_node_work.jar に設定し、[確認] をクリックします。

    4. リソース詳細ページで、Click Upload をクリックして、「ローカル環境:サンプルコードの準備」の手順で生成した JAR ファイルをアップロードします。Data Sources には、ワークスペースに関連付けられている MaxCompute データソースを選択します。

  3. リソースを保存してデプロイします。

    JAR リソースがアップロードされた後、ツールバーの image アイコンをクリックしてデプロイパネルを開きます。Start Release Production をクリックし、デプロイワークフローの手順を完了します。詳細については、「ノードとワークフローのデプロイ」をご参照ください。

  4. トリガーとなるシェルノードを作成します。

    1. 左側メニューで、image アイコンをクリックします。Project Directory の右側にある image アイコンをクリックします。

    2. General > [シェル] を選択します。New Node ダイアログボックスが表示されます。

    3. ノードのカスタム Name を入力し、Confirm をクリックしてノードエディターを開きます。

  5. トリガーとなるシェルノードを編集します。

    1. シェルノードエディターの左側メニューで、image アイコンをクリックし、アップロードした JAR リソース (http_node_work.jar) を見つけます。

    2. JAR リソースを右クリックし、Insert Resource Path を選択します。

    3. シェルノードで、トリガーコード実行のためのパラメーターを指定します。

    ##@resource_reference{"http_node_work.jar"}
     java -jar http_node_work.jar nodeId "EnvTypeStr" "cycTimeStr"

    パラメーター

    説明

    java -jar

    JAR 実行コマンド。

    http_node_work.jar

    参照したリソースの名前。

    nodeId

    テナント B:HTTP トリガーワークフローの作成」の手順で記録した HTTP トリガーノードの タスク ID を指定します。

    EnvTypeStr

    対象の HTTP トリガーノードのプロジェクト環境。この例のノードは本番環境にデプロイされるため、このパラメーターを Prod に設定します。

    開発環境で HTTP トリガーノードを実行するには、このパラメーターを Dev に設定します。

    cycTimeStr

    テナント B:HTTP トリガーワークフローの作成」の手順で記録した HTTP トリガーノードタスクの スケジュール時刻。時刻は yyyy-MM-dd HH:mm:ss 形式である必要があります。

  6. トリガーとなるシェルノードを設定します。

    シェルノードエディターの右側にあるScheduling Settingsパネルで、Scheduling Policy > Resource Groupを探し、Resource Groupとしてワークスペースにバインドされているサーバーレスリソースグループを選択します。

ワークフローの実行と結果の確認

テナント A のシェルノードを実行して、テナント B の HTTP トリガーノードとその下流タスクをトリガーします。

  1. トリガーとなるシェルノードを実行します。

    テナント A:シェルノードの設定」の手順で設定したシェルノードのツールバーで、Run をクリックします。

  2. 実行結果を確認します。

    テナント B の環境に移動し、以下の手順で結果を確認します:

    1. [オペレーションセンター] ページに移動します。

      DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[データモデリングと開発] > [オペレーションセンター] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[オペレーションセンターに移動] をクリックします。

    2. 左側のナビゲーションペインで、Auto Triggered Task O&M > Cycle Examples をクリックして、定期インスタンスページに移動します。

    3. トリガーされた HTTP トリガーノードインスタンスを見つけ、そのステータスを確認します。

レガシー Data Studio の例

テナント A からテナント B のレガシー Data Studio ワークスペース内にあるノードをトリガーする場合は、以下の手順に従ってください。

テナント B:HTTP トリガーワークフローの作成

テナント B のワークスペースで、リモートでトリガーできるワークフローを作成します。このワークフローには、トリガーコマンドを受信するための HTTP トリガーノードと、実行対象のダウンストリーム ビジネスノードを含める必要があります。このトピックでは、シェルノードを例に、クロステナントトリガーが機能することを確認します。

  1. HTTP トリガーノードを作成します。

  2. シェルノードを作成します。

    「ノードエディター」タブに、次のコードを入力します。 右側のスケジューリング設定で、RUN AttributeResource Group for Scheduling を設定します。 次に、Save をクリックしてノード設定を保存します。

    echo "DataWorks";
  3. オペレーションセンターにワークフローをデプロイします

  4. HTTP インスタンスのパラメーターを記録します。

    http トリガーノードは定時インスタンスT+1 ベースで生成するため、インスタンス情報は翌日に表示できます。 ワークフローの右上隅にある image アイコンをクリックします。 Operation and Maintenance CenterAuto Triggered Task O&M > Cycle Examples に移動すると、HTTP インスタンスのパラメーターを表示できます。

    作成した HTTP トリガーノードインスタンスを見つけ、その [タスク ID][定時実行時間]、および [業務日付] を記録します。

    説明

    HTTP トリガーノードインスタンスの名前にカーソルを合わせると、その [タスク ID] が表示されます。

ローカル環境:コードの準備

  1. pom 依存関係を追加します。

    RunTriggerNode デバッグページに移動します。[SDKの例] タブで、完全な [SDKインストール情報] を表示します。

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.example.demo.CrossTenantTriggerNode</mainClass>  <!-- お使いのメインクラスに置き換えてください -->
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase> 
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
        <dependencies>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>dataworks_public20200518</artifactId>
                <version>7.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-openapi</artifactId>
                <version>0.3.8</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-console</artifactId>
                <version>0.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-util</artifactId>
                <version>0.2.23</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>credentials-java</artifactId>
                <version>1.0.1</version>
            </dependency>
        </dependencies>
    重要

    コードの開発が完了したら、mainClass パラメーターを、お使いのメイン Java クラスの名前に置き換える必要があります。この名前は、パッケージ名を含む完全修飾クラス名である必要があります。例: com.example.demo.CrossTenantTriggerNode

  2. コードを開発します。

    package com.example.demo;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import com.aliyun.dataworks_public20200518.Client;
    import com.aliyun.dataworks_public20200518.models.RunTriggerNodeRequest;
    import com.aliyun.dataworks_public20200518.models.RunTriggerNodeResponse;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class CrossTenantTriggerNode {
        // Alibaba Cloud DataWorks クライアントを作成するメソッド。
        public static Client createClient20200518(String accessId, String accessKey, String endpoint) throws Exception {
            // OpenAPI 設定オブジェクトを初期化します。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
            config.setAccessKeyId(accessId); // AccessKey ID を設定します。
            config.setAccessKeySecret(accessKey); // AccessKey Secret を設定します。
            config.setEndpoint(endpoint); // サービスエンドポイントを設定します。
            return new Client(config); // 初期化されたクライアントインスタンスを返します。
        }
        // DataWorks ノードの実行をトリガーするメソッド。
        public static RunTriggerNodeResponse runTriggerNode(Client client, Long nodeId, Long cycleTime, Long bizDate, Long appId) throws Exception {
            RunTriggerNodeRequest request = new RunTriggerNodeRequest(); // API リクエストオブジェクトを作成します。
            request.setNodeId(nodeId); // トリガーするノードの ID を設定します。
            request.setCycleTime(cycleTime); // サイクルタイム (ミリ秒単位のタイムスタンプ) を設定します。
            request.setBizDate(bizDate); // 業務日付 (ミリ秒単位のタイムスタンプ) を設定します。
            request.setAppId(appId); // アプリケーション ID を設定します。
            RuntimeOptions runtime = new RuntimeOptions(); // ランタイムオプションを初期化します。
            return client.runTriggerNodeWithOptions(request, runtime); // API 呼び出しを実行し、レスポンスを返します。
        }
        // プログラムのエントリポイント。
        public static void main(String[] args) throws Exception {
            // ノード ID を初期化します (サンプル値)。
            String nodeId1 = "";
            // 定時実行時間と業務日付を初期化します (サンプル値)。
            String cycTimeStr = "";
            String bizTimeParam = "";
            // コマンドライン引数を処理し、nodeId1、cycTimeStr、bizTimeParam に割り当てるループ。
            int i;
            for(i = 0; i < args.length; ++i) {
                if (i == 0) {
                    nodeId1 = args[i];
                } else if (i == 1) {
                    cycTimeStr = args[i];
                }else if (i == 2) {
                    bizTimeParam = args[i];
                }
            }
            // 文字列を Long 型のノード ID に変換します。
            Long nodeId = Long.parseLong(nodeId1);
            // 使用方法を出力します。
            System.out.println("Usage: java -jar test-1.0-SNAPSHOT.jar nodeId cycTimeParam bizTimeParam");
            // 定時実行時間を解析し、タイムスタンプに変換します。
            SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sdft.parse(cycTimeStr)); // 時刻文字列を解析します。
            Long cycTime = calendar.getTimeInMillis(); // 時刻をミリ秒単位で取得します。
            // 業務日付を解析し、タイムスタンプに変換します。
            SimpleDateFormat sdfti = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendari = Calendar.getInstance();
            calendari.setTime(sdfti.parse(bizTimeParam));
            Long bizTime = calendari.getTimeInMillis();
            // デバッグ情報 (タイムスタンプ) を出力します。
            System.out.println("Scheduled timestamp: " + cycTime);
            System.out.println("Business date timestamp: " + bizTime);
            // Alibaba Cloud サービスパラメーターを設定します。
            String endpoint = "dataworks.cn-hangzhou.aliyuncs.com"; // サービスエンドポイント。
            String accessId = "xxx"; // AccessKey ID。
            String accessKey = "xxx"; // AccessKey Secret。
            Long appId = Long.valueOf(xxx); // アプリケーション ID (実際の値に置き換えてください)。
            // Alibaba Cloud クライアントインスタンスを作成します。
            Client client = createClient20200518(accessId, accessKey, endpoint);
            // トリガーノード操作を実行します。
            RunTriggerNodeResponse response = runTriggerNode(client, nodeId, cycTime, bizTime, appId);
            // API レスポンスを JSON 形式で出力します。
            System.out.println(com.aliyun.teautil.Common.toJSONString(com.aliyun.teautil.Common.toMap(response)));
        }
    }
    

    上記のコードの endpointaccessIdaccessKey、および appId パラメーターを、実際の値に置き換えてください。

    パラメーター

    説明

    endpoint

    対象の HTTP トリガーノードがあるワークスペースのリージョンのサービスエンドポイント。エンドポイントのリストについては、「Alibaba Cloud OpenAPI Developer Portal」をご参照ください。

    accessId

    対象の HTTP トリガーノードを所有する Alibaba Cloud アカウントの AccessKey ID

    DataWorks コンソールにログインします。 右上隅のプロフィール画像にポインターを合わせ、AccessKey に移動して AccessKey IDAccessKey Secret を取得します。

    警告

    ルートアカウント の AccessKey ペアは完全な権限を持ちます。AccessKey ペアが漏洩すると、高いセキュリティリスクをもたらします。対象の ワークスペース に対する [ワークスペース管理者] 権限のみを持つ RAM ユーザー の AccessKey ペアを使用することを推奨します。

    accessKey

    対象の HTTP トリガーノードを所有する Alibaba Cloud アカウントの AccessKey Secret

    appId

    対象の HTTP トリガーノードが配置されているワークスペースの ID。[管理] でワークスペース ID を確認できます。

  3. 上記のコードを、ファイル名が jar-with-dependencies.jar で終わる JAR ファイルにパッケージ化します。

テナント A:シェルノードの設定

以下の手順に従って、テナント A のワークスペースで、テナント B のワークスペースにある HTTP トリガーノードをトリガーするためのシェルノードを設定します。

  1. JAR リソースを作成してアップロードします。

    ローカル環境:コードの準備」の手順でパッケージ化した JAR ファイルから MaxCompute リソースを作成します。詳細については、「MaxComputeリソースの作成と使用」をご参照ください。

  2. トリガーとなるシェルノードを開発します。

    シェルノードを作成し、そのノードから MaxCompute リソースを参照します。シェルノードで、次の例に示すように、トリガーコード実行用のパラメーターを指定します。

    ##@resource_reference{"http_node_work.jar"}
     java -jar http_node_work.jar nodeId "cycleTime" "bizDate"

    パラメーター

    説明

    http_node_work.jar

    参照したリソースの名前。

    nodeId

    テナント B:HTTP トリガーワークフローの作成」の手順で記録した HTTP トリガーノードのタスク ID。

    cycleTime

    テナント B:HTTP トリガーワークフローの作成」の手順で記録したトリガーノードタスクの定時実行時間。値は yyyy-MM-dd HH:mm:ss 形式である必要があります。

    bizDate

    テナント B:HTTP トリガーワークフローの作成」の手順で記録したトリガーノードタスクの業務日付。値は yyyy-MM-dd 形式である必要があります。

  3. トリガーとなるシェルノードを設定します。

    シェルノードエディターの右側にあるScheduling Settingsパネルで、Resource Group > Resource Group for Schedulingを探し、スケジューリングリソースグループを、お使いのワークスペースにバインドされているサーバーレスリソースグループに設定します。

ワークフローの実行と結果の確認

テナント A のシェルノードを実行し、テナント B にある HTTP トリガーノードとそのダウンストリームタスクをトリガーします。

  1. トリガーとなるシェルノードを実行します。

    テナント A:シェルノードの設定」の手順で設定したシェルノードのツールバーで、実行アイコン (image) をクリックしてノードを実行します。

  2. 実行結果を確認します。

    テナント B の環境に移動し、以下の手順で結果を確認します。

    1. [オペレーションセンター] ページに移動します。

      DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[データモデリングと開発] > [オペレーションセンター] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[オペレーションセンターに移動] をクリックします。

    2. 左側のナビゲーションペインで、Auto Triggered Task O&M > Cycle Examples をクリックして、定期インスタンスページに移動します。

    3. トリガーされた HTTP トリガーノードインスタンスを見つけ、そのステータスを確認します。