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

Realtime Compute for Apache Flink:Java SDK

最終更新日:Mar 10, 2026

本トピックでは、Realtime Compute for Apache Flink 向け Java SDK のインストールおよび使用方法について説明します。

注意事項

Alibaba Cloud は、2022 年 9 月 19 日に Realtime Compute for Apache Flink 向け SDK を更新しました。新しい SDK バージョンがデフォルトで提供されるようになりました。この更新は、2022 年 9 月 19 日から 2022 年 10 月 27 日までの期間に、すべてのリージョンで順次展開されました。

説明
  • SDK アップグレードによる影響の詳細については、「お知らせ」をご参照ください。

  • 本トピックでは、新しいバージョンの SDK の使用方法について説明します。旧バージョンの SDK のドキュメントについては、OpenAPI SDK(非推奨) ドキュメントをダウンロードしてください。

前提条件

  • AccessKey ペアを作成しました。詳細については、「AccessKey ペアの作成」をご参照ください。

    説明

    AccessKey ペアの漏洩によるセキュリティリスクを防止するため、Resource Access Management (RAM) ユーザーを作成することを推奨します。その後、RAM ユーザーに対して Flink へのアクセスに必要な権限を付与し、RAM ユーザーの AccessKey ペアを使用して SDK を呼び出してください。詳細については、以下のトピックをご参照ください:

  • Java 環境が構築済みである必要があります。Java 8 以降のバージョンが必要です。

  • ご利用のアカウントに必要なアクセス権限および操作権限がある必要があります。詳細については、「権限管理」をご参照ください。

Realtime Compute for Apache Flink Java SDK

Realtime Compute for Apache Flink 販売コンソール向け Java SDK

インストール方法

コード

Apache Maven

<dependency>

<groupId>com.aliyun</groupId>

<artifactId>foasconsole20211028</artifactId>

<version>2.1.0</version>

</dependency>

Gradle Groovy DSL

implementation 'com.aliyun:foasconsole20211028:2.1.0'

Gradle Kotlin DSL

implementation("com.aliyun:foasconsole20211028:2.1.0")

Scala SBT

libraryDependencies += "com.aliyun" % "foasconsole20211028" % "2.1.0"

Apache Ivy

<dependency org="com.aliyun" name="foasconsole20211028" rev="2.1.0" />

Groovy Grape

@Grapes(

@Grab(group='com.aliyun', module='foasconsole20211028', version='2.1.0')

)

Leiningen

[com.aliyun/foasconsole20211028 "2.1.0"]

Apache Buildr

'com.aliyun:foasconsole20211028:jar:2.1.0'

Realtime Compute for Apache Flink 開発コンソール向け Java SDK

インストール方法

コード

Apache Maven

<dependency>

<groupId>com.aliyun</groupId>

<artifactId>ververica20220718</artifactId>

<version>1.7.0</version>

</dependency>

Gradle Groovy DSL

implementation 'com.aliyun:ververica20220718:1.7.0'

Gradle Kotlin DSL

implementation("com.aliyun:ververica20220718:1.7.0")

Scala SBT

libraryDependencies += "com.aliyun" % "ververica20220718" % "1.7.0"

Apache Ivy

<dependency org="com.aliyun" name="ververica20220718" rev="1.7.0" />

Groovy Grape

@Grapes(

@Grab(group='com.aliyun', module='ververica20220718', version='1.7.0')

)

Leiningen

[com.aliyun/ververica20220718 "1.7.0"]

Apache Buildr

'com.aliyun:ververica20220718:jar:1.7.0'

オンラインデバッグおよび SDK サンプルコード生成

OpenAPI Explorer を使用すると、API オペレーションをオンラインで呼び出し、動的に SDK サンプルコードを生成し、API オペレーションをすばやく検索して利用を簡素化できます。Realtime Compute for Apache Flink 開発コンソール API および Realtime Compute for Apache Flink 販売コンソール API のページで、各 API オペレーションの SDK サンプルを表示およびダウンロードできます。Realtime Compute for Apache Flink 開発コンソール API および Realtime Compute for Apache Flink 販売コンソール API のページをご参照ください。詳細については、「クイックスタート」をご参照ください。

image

サンプル

説明
  • Realtime Compute for Apache Flink 販売コンソールのエンドポイントについては、「OpenAPI Explorer」をご参照ください。

  • Realtime Compute for Apache Flink 開発コンソールのエンドポイントについては、「OpenAPI Explorer」をご参照ください。

購入済みワークスペースの確認

指定されたリージョンで購入済みの Realtime Compute for Apache Flink ワークスペースの詳細を照会できます。必要なリクエストパラメーターは以下のとおりです。

Region:リージョン ID。詳細については、「エンドポイント」をご参照ください。。例:`cn-hangzhou`。

package com.aliyun.sample;
import com.aliyun.foasconsole20211028.models.DescribeInstancesResponse;
import com.aliyun.tea.*;
import com.alibaba.fastjson2.JSON;

public class Sample {
    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.foasconsole20211028.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "foasconsole.aliyuncs.com";
        return new com.aliyun.foasconsole20211028.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        com.aliyun.foasconsole20211028.Client client = Sample.createClient();
        com.aliyun.foasconsole20211028.models.DescribeInstancesRequest describeInstancesRequest = new com.aliyun.foasconsole20211028.models.DescribeInstancesRequest()
                .setRegion("cn-beijing");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            DescribeInstancesResponse response = client.describeInstancesWithOptions(describeInstancesRequest, runtime);
            System.out.println(response.statusCode);
            // インスタンスのリージョン ID を表示します。
            System.out.println(response.getBody().getInstances().get(0).zoneId);
            // インスタンスのリソースグループ ID を表示します。
            System.out.println(response.getBody().getInstances().get(0).resourceGroupId);
            System.out.println(JSON.toJSON(response));

        } catch (TeaException error) {
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

デプロイ済みジョブの作成

SQL ジョブ

SQL デプロイメントを作成できます。必要なリクエストパラメーターは以下のとおりです。

  • workspace:ワークスペース ID。これは、「購入済みワークスペースの確認」オペレーションによって返される ResourceId から取得できます。例:`adf9e514****`。

  • namespace:プロジェクト名を指定します。例:test-default。

  • body.name:ジョブ名。例:`mysql_data_holo_test`。

  • body.engineVersion:エンジンバージョン。例:`vvr-8.0.7-flink-1.17`。サポートされているエンジンバージョンを取得するには、「サポートされているエンジンバージョンの一覧表示」オペレーションを呼び出します。

  • body.sqlArtifact.sqlScript:ジョブの SQL スクリプト。例:CREATE TEMPORARY TABLE datagen_source( name VARCHAR ) WITH ( 'connector' = 'datagen' ); CREATE TEMPORARY TABLE blackhole_sink( name VARCHAR ) with ( 'connector' = 'blackhole' ); INSERT INTO blackhole_sink SELECT name from datagen_source;

  • body.sqlArtifact.kind:ジョブの種類。例:`SQLSCRIPT`。

  • body.deploymentTarget.mode:デプロイモード。`PER_JOB` モードのみがサポートされています。

  • body.deploymentTarget.name:デプロイキューの名前。例:`default-queue`。

  • body.executionMode:実行モード。例:`STREAMING`(ストリームモード)。

  • body.streamingResourceSetting.resourceSettingMode:ストリームモードのリソース割り当てモード。例:`BASIC`。

  • body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.cpu:JobManager(JM)の CPU コア数。例:`2`。

  • body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JM のメモリ。例:`4.0 GiB`。

  • body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TaskManager(TM)の CPU コア数。例:`2`。

  • body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TM のメモリ。例:`4.0 GiB`。

package com.aliyun.sample;
import com.aliyun.tea.*;

public class Sample {

    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.teaopenapi.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-beijing.aliyuncs.com";
        return new com.aliyun.teaopenapi.Client(config);
    }

    /**
     * description :
     * <p>API 関連</p>
     *
     * @param path params
     * @return OpenApi.Params
     */
    public static com.aliyun.teaopenapi.models.Params createApiInfo(String namespace) throws Exception {
        com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
                // API オペレーション名
                .setAction("CreateDeployment")
                // API オペレーションバージョン
                .setVersion("2022-07-18")
                // API オペレーションプロトコル
                .setProtocol("HTTPS")
                // HTTP メソッド
                .setMethod("POST")
                .setAuthType("AK")
                .setStyle("ROA")
                // API パス
                .setPathname("/api/v2/namespaces/" + namespace + "/deployments")
                // リクエストボディのフォーマット
                .setReqBodyType("json")
                // レスポンスボディのフォーマット
                .setBodyType("json");
        return params;
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.teaopenapi.Client client = Sample.createClient();
        com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo("test-default");
        // ボディパラメーター
        java.util.Map<String, Object> body = TeaConverter.buildMap(
                new TeaPair("name", "mysql_data_holo_test"),
                new TeaPair("engineVersion", "vvr-8.0.7-flink-1.17"),
                new TeaPair("artifact", TeaConverter.buildMap(
                        new TeaPair("sqlArtifact", TeaConverter.buildMap(
                                new TeaPair("sqlScript", "CREATE TEMPORARY TABLE datagen_source(   name VARCHAR ) WITH (   'connector' = 'datagen' ); CREATE TEMPORARY TABLE blackhole_sink(   name  VARCHAR ) with (   'connector' = 'blackhole' ); INSERT INTO blackhole_sink SELECT name from datagen_source;")
                        )),
                        new TeaPair("kind", "SQLSCRIPT")
                )),
                new TeaPair("deploymentTarget", TeaConverter.buildMap(
                        new TeaPair("mode", "PER_JOB"),
                        new TeaPair("name", "default-queue")
                )),
                new TeaPair("executionMode", "STREAMING"),
                new TeaPair("streamingResourceSetting", TeaConverter.buildMap(
                        new TeaPair("resourceSettingMode", "BASIC"),
                        new TeaPair("basicResourceSetting", TeaConverter.buildMap(
                                new TeaPair("jobmanagerResourceSettingSpec", TeaConverter.buildMap(
                                        new TeaPair("cpu", 2),
                                        new TeaPair("memory", "4")
                                )),
                                new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
                                        new TeaPair("cpu", 2),
                                        new TeaPair("memory", "4")
                                ))
                        ))
                ))
        );
        // ヘッダーパラメーター
        java.util.Map<String, String> headers = new java.util.HashMap<>();
        headers.put("workspace", "ab2*******884d");
        // ランタイムオプション
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
                .setHeaders(headers)
                .setBody(body);
        // 戻り値は Map です。マップからレスポンスボディ、レスポンスヘッダー、HTTP ステータスコードの 3 種類のデータを取得できます。
        client.callApi(params, request, runtime);
        java.util.Map<String, ?> response = client.callApi(params, request, runtime);
        System.out.println(response);
    }
}

JAR ジョブ

JAR デプロイメントを作成およびデプロイできます。必要なリクエストパラメーターは以下のとおりです。

説明
  • JAR パッケージが OSS バケットにアップロードされ、Flink ワークスペースが必要なアクセス権限を持っていることを確認してください。詳細については、「OSS へのシンプルアップロード」をご参照ください。

  • アップロード後のダウンロード URL は、https://<Bucket>.oss-<Region>.aliyuncs.com/<FileName> です。

  • workspace:ワークスペース ID。これは、「購入済みワークスペースの確認」オペレーションによって返される ResourceId から取得できます。例:`adf9e514****`。

  • namespace:プロジェクト名。例:`test-default`。

  • body.name:ジョブ名。例:`my-test-jar`。

  • body.engineVersion:エンジンバージョン。例:`vvr-8.0.7-flink-1.17`。サポートされているエンジンバージョンを取得するには、「サポートされているエンジンバージョンの一覧表示」オペレーションを呼び出します。

  • body.jarArtifact.kind:ジョブの種類。例:`JAR`。

  • body.jarArtifact.jarUri:JAR ジョブの完全な URL。例:`https://myBucket/oss-cn-hangzhou/test.jar`。

  • body.jarArtifact.entryClass:エントリクラス。クラスの完全修飾名を指定します。例:`org.apache.flink.test`。

  • body.deploymentTarget.mode:デプロイモード。`PER_JOB` モードのみがサポートされています。

  • body.deploymentTarget.name:デプロイキューの名前。例:`default-queue`。

  • body.executionMode:実行モード。例:`STREAMING`(ストリームモード)。

  • body.streamingResourceSetting.resourceSettingMode:ストリームモードのリソース割り当てモード。例:`BASIC`。

  • body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.cpu:JM の CPU コア数。例:`2`。

  • body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JM のメモリ。例:`4.0 GiB`。

  • body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TM の CPU コア数。例:`2`。

  • body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TM のメモリ。例:`4.0 GiB`。

package com.aliyun.sample;
import com.aliyun.tea.*;

public class Sample {

    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.teaopenapi.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-hangzhou.aliyuncs.com";
        return new com.aliyun.teaopenapi.Client(config);
    }

    /**
     * description :
     * <p>API 関連</p>
     *
     * @param path params
     * @return OpenApi.Params
     */
    public static com.aliyun.teaopenapi.models.Params createApiInfo(String namespace) throws Exception {
        com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
                // API オペレーション名
                .setAction("CreateDeployment")
                // API オペレーションバージョン
                .setVersion("2022-07-18")
                // API オペレーションプロトコル
                .setProtocol("HTTPS")
                // HTTP メソッド
                .setMethod("POST")
                .setAuthType("AK")
                .setStyle("ROA")
                // API パス
                .setPathname("/api/v2/namespaces/" + namespace + "/deployments")
                // リクエストボディのフォーマット
                .setReqBodyType("json")
                // レスポンスボディのフォーマット
                .setBodyType("json");
        return params;
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.teaopenapi.Client client = Sample.createClient();
        com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo("flink-default");
        // ボディパラメーター
        java.util.Map<String, Object> body = TeaConverter.buildMap(
                new TeaPair("name", "my-test-jar"),
                new TeaPair("engineVersion", "vvr-8.0.7-flink-1.17"),
                new TeaPair("artifact", TeaConverter.buildMap(
                        new TeaPair("kind", "JAR"),
                        new TeaPair("jarArtifact", TeaConverter.buildMap(
                                new TeaPair("jarUri", "https://flink-test.oss-cn-hangzhou.aliyuncs.com/flinkDemo.jar?*****"),
                                new TeaPair("entryClass", "com.aliyun.FlinkDemo")
                        ))
                )),
                new TeaPair("deploymentTarget", TeaConverter.buildMap(
                        new TeaPair("mode", "PER_JOB"),
                        new TeaPair("name", "default-queue")
                )),
                new TeaPair("executionMode", "STREAMING"),
                new TeaPair("streamingResourceSetting", TeaConverter.buildMap(
                        new TeaPair("resourceSettingMode", "BASIC"),
                        new TeaPair("basicResourceSetting", TeaConverter.buildMap(
                                new TeaPair("jobmanagerResourceSettingSpec", TeaConverter.buildMap(
                                        new TeaPair("cpu", 2),
                                        new TeaPair("memory", "4")
                                )),
                                new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
                                        new TeaPair("cpu", 2),
                                        new TeaPair("memory", "4")
                                ))
                        ))
                ))
        );
        // ヘッダーパラメーター
        java.util.Map<String, String> headers = new java.util.HashMap<>();
        headers.put("workspace", "d05a*****e44");
        // ランタイムオプション
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
                .setHeaders(headers)
                .setBody(body);
        // 戻り値は Map です。マップからレスポンスボディ、レスポンスヘッダー、HTTP ステータスコードの 3 種類のデータを取得できます。
        java.util.Map<String, ?> response = client.callApi(params, request, runtime);
        System.out.println(response);
    }
}

デプロイメントの一覧表示

名前空間内のすべてのデプロイメントに関する情報を取得できます。必要なリクエストパラメーターは以下のとおりです。

  • workspace:ワークスペース ID。これは、「購入済みワークスペースの確認」オペレーションによって返される ResourceId から取得できます。例:`adf9e514****`。

  • namespace:プロジェクト名。例:`test-default`。

package com.sample;
import com.aliyun.tea.*;
import com.alibaba.fastjson2.JSON;
import com.aliyun.ververica20220718.models.ListDeploymentsResponse;

public class Sample {
    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.ververica20220718.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-hangzhou.aliyuncs.com";
        return new com.aliyun.ververica20220718.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        com.aliyun.ververica20220718.Client client = Sample.createClient();
        com.aliyun.ververica20220718.models.ListDeploymentsHeaders listDeploymentsHeaders = new com.aliyun.ververica20220718.models.ListDeploymentsHeaders()
                .setWorkspace("ab2a******884d");
        com.aliyun.ververica20220718.models.ListDeploymentsRequest listDeploymentsRequest = new com.aliyun.ververica20220718.models.ListDeploymentsRequest();
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            ListDeploymentsResponse response=client.listDeploymentsWithOptions("test-default", listDeploymentsRequest, listDeploymentsHeaders, runtime);
            System.out.println(response.body.data.get(0).name);
            System.out.println(response.body.data.get(0).deploymentId);
            System.out.println(JSON.toJSON(response));
        } catch (TeaException error) {
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

ジョブの開始

プロジェクト内でデプロイ済みのジョブを開始できます。必要なリクエストパラメーターは以下のとおりです。

  • workspace:ワークスペース ID。例:`adf9e5147a****`。

  • namespace:プロジェクト名。例:`test-default`。

  • deploymentId:ジョブのデプロイメント ID。これは、「デプロイメントの一覧表示」オペレーションを呼び出すことで取得できます。例:`10283a02-c6a6-4f3e-9f93-8dab****`。

  • kind:開始オフセットの種類。有効な値は `NONE`(ステートレス開始)、`LATEST_SAVEPOINT`(最新のジョブスナップショットから開始)、`FROM_SAVEPOINT`(指定したスナップショットから開始)、`LATEST_STATE`(最新の状態から開始)です。

package com.aliyun.sample;
import com.aliyun.tea.*;
import com.aliyun.ververica20220718.models.StartJobWithParamsResponse;
import com.alibaba.fastjson2.JSON;

public class Sample {

    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.ververica20220718.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-hangzhou.aliyuncs.com";
        return new com.aliyun.ververica20220718.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        com.aliyun.ververica20220718.Client client = Sample.createClient();
        com.aliyun.ververica20220718.models.StartJobWithParamsHeaders startJobWithParamsHeaders = new com.aliyun.ververica20220718.models.StartJobWithParamsHeaders()
                .setWorkspace("ab2a******884d");
        com.aliyun.ververica20220718.models.DeploymentRestoreStrategy jobStartParametersDeploymentRestoreStrategy = new com.aliyun.ververica20220718.models.DeploymentRestoreStrategy()
                .setKind("NONE");
        com.aliyun.ververica20220718.models.JobStartParameters jobStartParameters = new com.aliyun.ververica20220718.models.JobStartParameters()
                .setRestoreStrategy(jobStartParametersDeploymentRestoreStrategy)
                .setDeploymentId("10283a02-****-****-****-8dabf617d52f");
        com.aliyun.ververica20220718.models.StartJobWithParamsRequest startJobWithParamsRequest = new com.aliyun.ververica20220718.models.StartJobWithParamsRequest()
                .setBody(jobStartParameters);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            StartJobWithParamsResponse response = client.startJobWithParamsWithOptions("test-default", startJobWithParamsRequest, startJobWithParamsHeaders, runtime);
            System.out.println(JSON.toJSON(response.body));
        } catch (TeaException error) {
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

特定のデプロイ済みジョブの情報取得

デプロイメント内のすべてのジョブインスタンスに関する情報を取得できます。必要なリクエストパラメーターは以下のとおりです。

  • workspace:ワークスペース ID。例:`adf9e5147****`。

  • namespace:プロジェクト名。例:`test-default`。

  • deploymentId:ジョブのデプロイメント ID。これは、「デプロイメントの一覧表示」オペレーションを呼び出すことで取得できます。例:`8489b7ec-****-****-****-cc4c17fa12b0`。

package com.aliyun.sample;
import com.aliyun.tea.*;
import com.aliyun.ververica20220718.models.ListJobsResponse;
import com.alibaba.fastjson2.JSON;

public class Sample {

    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.ververica20220718.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-beijing.aliyuncs.com";
        return new com.aliyun.ververica20220718.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        com.aliyun.ververica20220718.Client client = Sample.createClient();
        com.aliyun.ververica20220718.models.ListJobsHeaders listJobsHeaders = new com.aliyun.ververica20220718.models.ListJobsHeaders()
                .setWorkspace("ab2a******884d");
        com.aliyun.ververica20220718.models.ListJobsRequest listJobsRequest = new com.aliyun.ververica20220718.models.ListJobsRequest()
                .setDeploymentId("8489b7ec-****-****-****-cc4c17fa12b0");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            ListJobsResponse response =  client.listJobsWithOptions("test-default", listJobsRequest, listJobsHeaders, runtime);
            // ジョブ実行結果を表示します。
            System.out.println("Execution result is: "+response.body.success);
            // ジョブ ID を取得します。このパラメーターはジョブの停止に使用されます。
            System.out.println(response.body.getData().get(0).jobId);
            System.out.println(JSON.toJSON(response));
        } catch (TeaException error) {
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

ジョブインスタンスの停止

ジョブインスタンスを停止できます。必要なリクエストパラメーターは以下のとおりです。

  • workspace:ワークスペース ID。例:`adf9e5147****`。

  • namespace:プロジェクト名。例:`test-default`。

  • jobId:ジョブインスタンス ID。これは、「特定のデプロイ済みジョブの情報取得」オペレーションを呼び出すことで取得できます。例:`3171d4d1-****-****-****-e762493b7765`。

  • stopStrategy:ジョブの停止ポリシー。有効な値は `NONE`(即時停止)、`STOP_WITH_SAVEPOINT`(ジョブスナップショットの生成後に停止)、`STOP_WITH_DRAIN`(ドレインモードで停止)です。

package com.aliyun.sample;
import com.alibaba.fastjson2.JSON;
import com.aliyun.tea.*;
import com.aliyun.ververica20220718.models.StopJobResponse;

public class Sample {

    /**
     * description :
     * <p>AccessKey ID および AccessKey Secret を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.ververica20220718.Client createClient() throws Exception {
        // プロジェクトコードの漏洩は、AccessKey ペアの公開につながり、アカウント内のすべてのリソースのセキュリティを損なう可能性があります。以下のコードは参考用です。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必須。実行環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "ververica.cn-hangzhou.aliyuncs.com";
        return new com.aliyun.ververica20220718.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.ververica20220718.Client client = Sample.createClient();
        com.aliyun.ververica20220718.models.StopJobHeaders stopJobHeaders = new com.aliyun.ververica20220718.models.StopJobHeaders()
                .setWorkspace("ab2a******884d");
        com.aliyun.ververica20220718.models.StopJobRequestBody stopJobRequestBody = new com.aliyun.ververica20220718.models.StopJobRequestBody()
                .setStopStrategy("NONE");
        com.aliyun.ververica20220718.models.StopJobRequest stopJobRequest = new com.aliyun.ververica20220718.models.StopJobRequest()
                .setBody(stopJobRequestBody);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            StopJobResponse response = client.stopJobWithOptions("test-default", "7970e881-****-****-****-1a3746710878", stopJobRequest, stopJobHeaders, runtime);
            System.out.println(JSON.toJSON(response.getBody().getData()));
        } catch (TeaException error) {
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // このコードはデモンストレーション用です。例外処理には十分注意してください。プロジェクトで例外を無視しないでください。
            // エラーメッセージ
            System.out.println(error.getMessage());
            // 診断アドレス
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

参考文献

Python SDK の詳細については、「Python SDK」をご参照ください。