# 通过API方式连接Flink端点并提交作业
在AI DataLake控制台上创建Flink端点后，即可向该端点提交Flink作业，利用端点的计算能力处理数据。目前支持通过API方式提交Flink SQL和Flink JAR。
#### 前提条件
- 已获取工作空间ID 。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"工作空间管理"页面找到目标工作空间ID。
  
- 已获取Flink端点名称（endpoint_name）。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"引擎端点"下的"流处理引擎Flink"页面找到目标Flink端点名称。
  
- 已根据作业类型编写对应的作业文件，并将编写好的文件上传至OBS桶，记录其OBS路径。
 
#### 涉及API
[创建FlinkJob作业](https://support.huaweicloud.com/api-aidatalake/RunFlinkJob.html)
#### 提交Flink SQL作业
使用Postman等工具，调用[创建FlinkJob作业](https://support.huaweicloud.com/api-aidatalake/RunFlinkJob.html)API接口创建并启动一个Flink SQL作业，代码示例如下。
```
POST /v2/workspaces/{workspace_id}/flink-jobs
{
  "name" : "test-flink-job",
  "description" : "测试Flink SQL作业",
  "endpoint_name" : "Flink-endpoint-test",
  "job_agency" : "test-agencys",
  "execution_mode" : "STREAMING",
  "job_config" : {
    "type" : "FLINK_SQL_JOB",
    "sql_script_file" : "obs://bucket/path/to/script.sql",
    "dependency_jars" : [ "obs://bucket/path/to/dep1.jar" ]
  },
  "image_config": {
    "image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
    "image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
  },
  "flink_config" : {
    "taskmanager.numberOfTaskSlots" : "1"
  },
  "autoscaling_policy" : {
    "enabled" : true,
    "vertex_max_parallelism" : 1000,
    "quota_cpu" : 4000,
    "quota_memory" : 8192,
    "custom_config" : {
      "job.autoscaler.target.utilization" : "0.6",
      "job.autoscaler.target.catch-up.duration" : "10 min"
    }
  },
  "resource_config" : {
    "parallelism" : 1,
    "jobmanager_resource_spec" : {
      "cpu" : 1000,
      "memory" : 4096
    },
    "taskmanager_resource_spec" : {
      "cpu" : 1000,
      "memory" : 4096
    }
  }
}
```
表1Flink SQL作业参数说明 
| 参数              | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 示例                                            |
|:---|:---|:---|
| workspace_id       | 工作空间ID。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"工作空间管理"页面找到目标工作空间ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 980a81cf-8\*\*1-4\*\*6-b\*\*9-c80\*\*\*\*\*\*ed1 |
| job_agency       | 用户自定义委托名称，用于授权作业访问OBS等外部资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | test-agencys                                  |
| endpoint_name   | 端点名称。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"引擎端点"下的"流处理引擎Flink"页面找到目标Flink端点名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Flink-endpoint-test                            |
| type             | Flink作业类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | FLINK_SQL_JOB                                 |
| sql_script_file  | SQL脚本所在的OBS文件路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | obs://bucket/path/to/script.sql                 |
| dependency_jars  | SQL作业依赖的JAR包OBS路径列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | obs://bucket/path/to/dep1.jar                 |
| image_id         | 镜像ID，请通过调用[查看自定义镜像列表](https://support.huaweicloud.com/api-aidatalake/ListV2TenantImages.html)接口查询获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | dd877a59-5cbd-44c5-b8a7-dc464cca\*\*\*\*     |
| image_version_id | 说明： 如果端点的资源使用模式为混合模式和按需弹性，且当前所选镜像版本已创建镜像快照，选择该版本镜像时会自动关联对应的镜像快照，端点启动时自动使用快照创建镜像资源，无需额外操作。创建镜像快照的具体操作，请参见[镜像加速](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0108.html)。 镜像版本。查看镜像版本的具体操作如下： 1. 在AI DataLake管理控制台页面的左侧导航栏，选择"镜像管理"。  2. 在"预置镜像"或"自定义镜像"页签下，单击镜像名称。  3. 查看预置镜像或者自定义镜像的版本。 - 查看预置镜像版本：单击"版本"页签，在"镜像版本"列，查看预置镜像的版本。  - 查看自定义镜像版本：在"镜像版本"列，查看自定义镜像的版本。 如果没有自定义镜像，请手动注册。具体操作，请参见[注册自定义镜像](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0059.html#section2)。      | 20e48735-f273-413c-a0f5-4cd4544f\*\*\*\*         |
   
#### 提交Flink JAR作业
使用Postman等工具，调用[创建FlinkJob作业](https://support.huaweicloud.com/api-aidatalake/RunFlinkJob.html)API接口创建并启动一个Flink JAR作业，代码示例如下。
```
POST /v2/workspaces/{workspace_id}/flink-jobs
{
  "name" : "test-flink-jar-job",
  "description" : "测试Flink JAR作业",
  "endpoint_name" : "Flink-endpoint-test",
  "job_agency" : "test-agencys",
  "execution_mode" : "STREAMING",
  "job_config" : {
    "type" : "FLINK_JAR_JOB",
    "main_jar" : "obs://bucket/path/jars/WindowJoin.jar",
    "main_class" : "org.apache.flink.streaming.examples.join.WindowJoin",
    "main_args" : [ "--input", "obs://bucket/input/", "--output", "obs://bucket/output/" ],
    "dependency_jars" : [ "obs://bucket/path/to/dep1.jar" ],
    "dependency_files" : [ "obs://bucket/path/to/config.csv" ]
  },
  "image_config": {
    "image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
    "image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
  },
  "resource_config" : {
    "parallelism" : 1,
    "jobmanager_resource_spec" : {
      "cpu" : 1000,
      "memory" : 4096
    },
    "taskmanager_resource_spec" : {
      "cpu" : 1000,
      "memory" : 4096
    }
  }
}
```
表2Flink JAR作业参数说明 
| 参数                 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 示例                                                                    |
|:---|:---|:---|
| workspace_id       | 工作空间ID。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"工作空间管理"页面找到目标工作空间ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 980a81cf-8\*\*1-4\*\*6-b\*\*9-c80\*\*\*\*\*\*ed1                    |
| job_agency          | 用户自定义委托名称，用于授权作业访问OBS等外部资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | test-agencys                                                         |
| endpoint_name      | 端点名称。 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)，在"引擎端点"下的"流处理引擎Flink"页面找到目标Flink端点名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Flink-endpoint-test                                                  |
| type                | Flink作业类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | FLINK_JAR_JOB                                                        |
| main_jar          | JAR作业主类所在JAR包的OBS路径，用于指定作业的入口JAR包。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | obs://bucket/path/jars/WindowJoin.jar                               |
| main_class         | JAR作业入口类全限定名，用于指定作业的入口类。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | org.apache.flink.streaming.examples.join.WindowJoin                 |
| main_args           | JAR作业入口类参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | "--input", "obs://bucket/input/", "--output", "obs://bucket/output/" |
| dependency_jars   | JAR作业依赖JAR包的OBS路径列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | obs://bucket/path/to/dep1.jar                                      |
| dependency_files | JAR作业依赖文件的OBS路径，用于指定作业运行所需的依赖文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | obs://bucket/path/to/config.csv                                    |
| image_id           | 镜像ID，请通过调用[查看自定义镜像列表](https://support.huaweicloud.com/api-aidatalake/ListV2TenantImages.html)接口查询获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | dd877a59-5cbd-44c5-b8a7-dc464cca\*\*\*\*                            |
| image_version_id  | 说明： 如果端点的资源使用模式为混合模式和按需弹性，且当前所选镜像版本已创建镜像快照，选择该版本镜像时会自动关联对应的镜像快照，端点启动时自动使用快照创建镜像资源，无需额外操作。创建镜像快照的具体操作，请参见[镜像加速](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0108.html)。 镜像版本。查看镜像版本的具体操作如下： 1. 在AI DataLake管理控制台页面的左侧导航栏，选择"资产管理 \> 镜像"。  2. 在"预置镜像"或"自定义镜像"页签下，单击镜像名称。  3. 查看预置镜像或者自定义镜像的版本。 - 查看预置镜像版本：单击"版本"页签，在"镜像版本"列，查看预置镜像的版本。  - 查看自定义镜像版本：在"镜像版本"列，查看自定义镜像的版本。 如果没有自定义镜像，请手动注册。具体操作，请参见[注册自定义镜像](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0059.html#section2)。      | 20e48735-f273-413c-a0f5-4cd4544f\*\*\*\*                             |
   
#### 相关操作
- [取消Flink作业执行](https://support.huaweicloud.com/api-aidatalake/CancelFlinkJob.html)
- [查看Flink作业详情](https://support.huaweicloud.com/api-aidatalake/ShowFlinkJob.html)
 
