本文為您介紹如何安裝并使用實時計算Flink版Java SDK。
注意事項
2022年9月19日,我們對實時計算Flink版SDK進行了升級,后續將默認使用新版本的SDK為您服務。該版本在全網更新發布的時間為2022年9月19日至2022年10月27日。
關于SDK升級的影響,請參見產品公告。
本文檔為新版SDK使用文檔,如果您還需查看舊版SDK使用文檔,請單擊OpenAPI SDK(已停止維護)下載后進行查看。
前提條件
已創建AccessKey,詳情請參見創建AccessKey。
說明為避免主賬號泄露AccessKey帶來安全風險,建議您創建RAM用戶,授予RAM用戶Flink相關的訪問權限,再使用RAM用戶的AccessKey調用SDK。相關文檔請參見:
創建RAM用戶操以及對應AccessKey,請參見創建RAM用戶或創建AccessKey。
為RAM用戶授權,請參見RAM授權。
已準備Java環境,要求Java 8及以上版本。
賬號具有相關訪問及操作權限,詳情請參見權限管理。
安裝Flink Java SDK
實時計算開發控制臺Java SDK
安裝方式 | 代碼 |
Apache Maven | <dependency> <groupId>com.aliyun</groupId> <artifactId>ververica20220718</artifactId> <version>1.3.0</version> </dependency> |
Gradle Groovy DSL | implementation 'com.aliyun:ververica20220718:1.3.0' |
Gradle Kotlin DSL | implementation("com.aliyun:ververica20220718:1.3.0") |
Scala SBT | libraryDependencies += "com.aliyun" % "ververica20220718" % "1.3.0" |
Apache Ivy | <dependency org="com.aliyun" name="ververica20220718" rev="1.3.0" /> |
Groovy Grape | @Grapes( @Grab(group='com.aliyun', module='ververica20220718', version='1.3.0') ) |
Leiningen | [com.aliyun/ververica20220718 "1.3.0"] |
Apache Buildr | 'com.aliyun:ververica20220718:jar:1.3.0' |
實時計算售賣控制臺Java SDK
安裝方式 | 代碼 |
Apache Maven | <dependency> <groupId>com.aliyun</groupId> <artifactId>foasconsole20211028</artifactId> <version>1.0.6</version> </dependency> |
Gradle Groovy DSL | implementation 'com.aliyun:foasconsole20211028:1.0.6' |
Gradle Kotlin DSL | implementation("com.aliyun:foasconsole20211028:1.0.6") |
Scala SBT | libraryDependencies += "com.aliyun" % "foasconsole20211028" % "1.0.6" |
Apache Ivy | <dependency org="com.aliyun" name="foasconsole20211028" rev="1.0.6" /> |
Groovy Grape | @Grapes( @Grab(group='com.aliyun', module='foasconsole20211028', version='1.0.6') ) |
Leiningen | [com.aliyun/foasconsole20211028 "1.0.6"] |
Apache Buildr | 'com.aliyun:foasconsole20211028:jar:1.0.6' |
在線調試和生成SDK示例
OpenAPI門戶提供了在線調用產品API、動態生成SDK示例代碼和快速檢索接口等功能,可以顯著降低使用API的難度。您可以在實時計算開發控制臺API和實時計算售賣控制臺API頁面查看所需API的SDK示例,并下載使用,具體操作步驟請參見快速開始。
參考示例
查看已經購買的工作空間
查詢目標地域下已購買的Flink工作空間的詳細信息。必填請求參數如下,更多參數詳情請參見DescribeInstances - 查看已購買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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
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);
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
System.out.println(error.getMessage());
// 診斷地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
創建已部署作業
SQL作業
創建一個已部署SQL作業,必填請求參數如下。參數詳情請參見CreateDeployment - 創建已部署作業。
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
: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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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);
}
/**
* <b>description</b> :
* <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()
// 接口名稱
.setAction("CreateDeployment")
// 接口版本
.setVersion("2022-07-18")
// 接口協議
.setProtocol("HTTPS")
// 接口 HTTP 方法
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// 接口 PATH
.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");
// body params
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")
))
))
))
);
// header params
java.util.Map<String, String> headers = new java.util.HashMap<>();
headers.put("workspace", "ab2*******884d");
// runtime options
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 類型,可從 Map 中獲得三類數據:響應體 body、響應頭 headers、HTTP 返回的狀態碼 statusCode。
client.callApi(params, request, runtime);
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}
JAR作業
創建并部署一個JAR作業,必填請求參數如下。參數詳情請參見CreateDeployment - 創建已部署作業。
請確保已將JAR包上傳到OSS Bucket且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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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);
}
/**
* <b>description</b> :
* <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()
// 接口名稱
.setAction("CreateDeployment")
// 接口版本
.setVersion("2022-07-18")
// 接口協議
.setProtocol("HTTPS")
// 接口 HTTP 方法
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// 接口 PATH
.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");
// body params
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")
))
))
))
);
// header params
java.util.Map<String, String> headers = new java.util.HashMap<>();
headers.put("workspace", "d05a*****e44");
// runtime options
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 類型,可從 Map 中獲得三類數據:響應體 body、響應頭 headers、HTTP 返回的狀態碼 statusCode。
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}
獲取已部署作業列表
獲取項目空間下所有已部署作業的信息。必填請求參數如下。參數詳情請參見ListDeployments - 獲取已部署作業列表。
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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
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);
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
System.out.println(error.getMessage());
// 診斷地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
啟動作業
啟動項目空間下一個已部署的作業。必填請求參數如下。詳情請參考請求參數說明StartJobWithParams - 啟動作業實例。
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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
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);
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
System.out.println(error.getMessage());
// 診斷地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
獲取某個已部署作業的信息
獲取某個已部署作業下所有作業實例的信息。必填請求參數如下。參數詳情請參見ListJobs - 獲取作業實例列表。
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 {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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);
// 獲取jobId,該參數用于停止作業
System.out.println(response.body.getData().get(0).jobId);
System.out.println(JSON.toJSON(response));
} catch (TeaException error) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
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);
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
System.out.println(error.getMessage());
// 診斷地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
停止實例作業
停止一個作業實例。必填請求參數如下。參數詳情請參見StopJob - 停止作業實例。
workspace
:工作空間ID,例如adf9e5147****。namespace
:項目空間名稱,例如test-default。jobId
:作業實例ID,您可以通過獲取某個已部署作業的信息獲取。例如3171d4d1-****-****-****-e762493b7765。stopStrategy
:作業停止策略。支持NONE(直接停止)、STOP_WITH_SAVEPOINT(生成作業快照后停止)、STOP_WITH_DRAIN(以drain的方式停止)。
package com.aliyun.sample;
import com.alibaba.fastjson2.JSON;
import com.aliyun.tea.*;
import com.aliyun.ververica20220718.models.StopJobResponse;
public class Sample {
/**
* <b>description</b> :
* <p>使用AK&SK初始化賬號Client</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) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
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);
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
// 錯誤 message
System.out.println(error.getMessage());
// 診斷地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
相關文檔
Python SDK參考請參見Python SDK參考。
實時計算售賣控制臺支持的API,以及各API的參數說明等詳情請參見API概覽。
實時計算開發控制臺支持的API,以及各API的參數說明等詳情請參見API概覽。