OpenAPI开发文档
最近更新版本 : Sloth_v3.9.11
一 公共参数 1.1 响应格式
名称 | 类型 | 描述 |
---|---|---|
code | Number | 响应码:非0表示失败。 |
reqId | String | 请求ID |
msg | String | 响应消息 |
result | Object | 响应结果 |
cost | Number | 耗时 |
1.2 响应码(1000~9999)
响应码 | 描述 |
---|---|
1000 | openapi请求参数为空! |
1001 | 请求参数必须extends OpenapiBaseRequest |
1002 | 参数[{}]不能为空 |
1003 | 获取用户[{}]信息失败 |
1004 | 用户[{}]不存在 |
1005 | 获取产品信息失败,产品[{}]! |
1006 | 用户[{}]产品列表为空 |
1007 | 用户[{}]不在产品里, 产品[{}]! |
1008 | 产品[{}]不存在 |
1009 | 任务名重复 |
1010 | 目录[{}],不存在 |
1011 | 该引擎类型不存在,或者没有入库[{}] |
1012 | 目录[{}]格式有问题 |
1013 | 目录[{}]创建失败 |
1014 | 目录深度超过两层 |
1015 | JAR包不存在 |
1016 | 任务不存在 |
1017 | 发布失败,错误原因:[{}] |
1018 | 文件已存在 |
1019 | 文件格式只能是*.jar, *.xml, *.proto, *.keytab, *.conf |
1131 | cdc任务引擎类型无效 |
1132 | 参数[{}]无效,正确的是[{}] |
1133 | 数据源id[{}]无效,查找不到对应的数据源 |
1134 | cdc任务源端增量读取方式为ogg时目标端类型只能为kafka |
1135 | 更新资源实例信息异常 |
1136 | 更新队列信息异常 |
1137 | 获取参数组信息异常 |
1138 | 获取参数组[{}]无效, 查找不到对应的参数组 |
1403 | 用户不存在或者权限不正确 |
1.3 公共枚举定义 1.3.1 EngineTypeEnum
枚举值 | 类型 | 名称 |
---|---|---|
FLINK1_10 | String | flink引擎版本1.10 |
FLINK1_12 | String | flink引擎版本1.12 |
FLINK1_13 | String | flink引擎版本1.13 |
FLINK1_14 | String | flink引擎版本1.14 |
1.3.2 StartMode
枚举值 | 类型 | 名称 |
---|---|---|
FROM_LAST_CHECKPOINT | String | 从最近的checkpoint启动 |
FROM_LAST_SAVEPOINT | String | 从最近的savepoint启动 |
FROM_PATH | String | 从指定的路径启动 |
NONE | String | 直接启动 |
1.3.3 JobStatusEnum 任务运行状态
名称 | 枚举值 | 任务状态 |
---|---|---|
JobStatus | STARTING | 启动中 |
START_FAILED | 启动失败 | |
RUNNING | 运行中 | |
FINISHED | 任务执行结束,并正确的退出 | |
FAILED | 任务因为异常运行失败 | |
STOPPING | 停止中 | |
STOPPED | 已停止 | |
UNKNOWN | 未知(无法访问集群) |
1.4 查询实体列表 1.4.1 JobTaskConfig 任务参数配置 字段说明:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
checkpointSwitch | boolean | cp开关 | 否 | False 关闭 |
checkpointInterval | int | cp间隔:单位s | 否 | 30 |
checkpointMode | CheckpointMode | cp模式 | 否 | EXACTLY_ONCE |
checkpointTimeout | int | cp超时时间 | 否 | 30 |
restartStrategy | RestartStrategy | 重启策略 | 否 | fixed-delay |
restartAttempts | int | 重启失败次数 | 否 | 10 |
restartDelay | int | 重试时间间隔 | 否 | 10 |
restartInterval | int | 重启时间范围 | 否 | 300 |
extendConfig | Map | flink高级配置 | 否 |
1.4.2 JobResourceConfig
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
resourceInstanceName | String | 资源实例名称 | 是 | |
queueName | String | 队列名称 | 是 | |
slots | int | slot数量 | 否 | 1 |
tmMemory | int | tm内存:单位M | 否 | 2048 |
jmMemory | int | jm内存:单位M | 否 | 2048 |
parallelism | int | 并发数 | 否 | 1 |
accountType | String | 提交账号 PLATFORM_ACCOUNT 平台账号 (默认) PRODUCT_ACCOUNT 项目账号 |
否 | PLATFORM_ACCOUNT |
deploymentMode | String | 部署模式: per-job : PER_JOB application-mode : APPLICATION_MODE |
否 | PER_JOB |
1.4.3 CheckpointMode
名称 | 类型 | 描述 |
---|---|---|
EXACTLY_ONCE | String | 至多一次 |
AT_LEAST_ONCE | String | 至少一次 |
1.4.4 StateBackend 存储介质
名称 | 类型 | 描述 |
---|---|---|
hdfs | String | hdfs |
rocksdb | String | rocksdb |
1.4.5 RestartStrategy 重启策略
名称 | 类型 | 描述 |
---|---|---|
fixed-delay | String | 固定间隔,如果超过最大尝试次数,作业会最终失败,在连续两次重启尝试之间等待固定的时间 |
failure-rate | String | 在失败之后重新启动作业,但是当超过故障率时,作业最终会失败。在连续两次重启尝试之间等待固定时间。 |
如果没有启用 checkpointing,则使用无重启 (no restart) 策略。 如果启用了 checkpointing,但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略 fixed-delay 需要传入重启失败次数和重试时间间隔 failure-rate 需要传入 重启失败次数、重启时间范围、重试时间间隔 1.4.6 StartJobInfo 任务启动参数配置
- 字段说明:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
jobId | String | 任务id | 是 | |
startMode | startMode | 启动任务的方式,枚举类型 | 否 | NONE |
statePath | String | 状态路径 | 否 |
1.4.7 StopJobInfo 任务停止参数配置
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
jobId | String | 任务id | 是 | |
triggerSavepoint | boolean | 是否触发savepoint保存 | 否 |
1.4.8 RestartJobInfo 任务重启参数配置
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
jobId | String | 任务id | 是 | |
startMode | startMode | 启动任务的方式,枚举类型 | 否 | NONE |
statePath | String | 状态路径 | 否 | |
triggerSavepoint | boolean | 是否触发savepoint保存 | 否 |
1.4.9 AlarmInfo 告警信息配置
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
emails | Array | 告警用户信息 | 否 | null |
alarmRules | Array | 告警规则详细描述 | 是 | null |
alarmGroupId | String | 告警接收组id,如sloth开发组 | 否 | null |
pausingInterval | int | 全局告警抑制时间 | 否 | null |
pausingEnable | boolean | 是否开启告警抑制 | 是 | false |
alarmEnable | boolean | 是否开启告警 | 是 | true |
1.4.10 AlarmRule 告警规则
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
metricType | String | 告警指标类型:
|
是 | |
metricName | String | 告警指标名称 | 否 | -1 |
cycleTime | int | 单个统计周期的时长:(任务失败不支持配置)
|
是 | |
alarmInterval | int | 报警间隔时长,单位:分钟 | 是 | |
suppressOperator | String | 单个统计周期内的运算符:(仅支持用户自定义延迟)
|
否 | -1 |
cycleNum | String | 连续多少个统计周期:
|
否 | -1 |
threshold | String | 定义的多个统计周期内告警阈值:(任务失败不支持配置) | 否 | -1 |
suppressThreshold | String | 单个统计周期内告警阈值:(仅支持用户自定义延迟) | 是 | |
statisticsType | String | 聚合类型:
|
否 | -1 |
operator | String | 定义的多个统计周期内运算符:(任务失败不支持配置)
|
是 | -1 |
receiveTypes | Array | 告警方式的接收类型(根据支持的通道设置): sendemail:邮箱; sendsms:短信 sendvoice:电话; |
是 |
1.4.11 ParamSetInfo
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
id | String | 参数组唯一标识 | 是 | |
priority | int | 参数组的优先级, 数值越小, 优先级越高. 如果不同的参数组中有相同的参数, 使用参数组priority 最小的值. |
是 | |
name | String | 参数组名称 | 否 |
1.5 响应实体列表 1.5.1 JobBasicInfo
名称 | 类型 | 描述 |
---|---|---|
jobId | String | 任务id |
jobName | String | 任务名称 |
jarInfo | JarInfo | 对Jar任务的描述 |
jobType | String | 任务类型 |
rawSql | String | SQL文本信息 |
fileList | ResourceFileSimpleInfo | 依赖的文件信息 |
udfList | UdfSimpleInfo | 依赖的udf信息 请注意手动依赖的方式, udfList参数中不会显示udf信息,请尽快下线, 推荐采用对接udf stuido的新方式使用.] |
paramSetList | ParamSetInfo | 依赖的参数组信息 |
creator | String | 任务的创建者 |
createTime | String | 任务的创建时间 |
publisher | String | 任务的发布人 |
env | String | 环境id |
category | String | 任务所属目录id |
tags | Array | 任务的标签信息 |
description | String | 任务的描述信息 |
lastStartJobExecHistoryId | String | 最后一次启动任务的执行id |
startExecId | String | 任务的启动id |
lastClusterId | String | 任务所属的集群id |
jobStatus | String | 任务的运行状态 |
applicationId | String | 对应flink任务id |
flinkUrl | String | Flink web URL |
monitorUrl | String | 任务的Grafana监控地址 |
1.5.2 ResourceFileSimpleInfo
名称 | 类型 | 描述 |
---|---|---|
id | String | 依赖资源id |
name | String | 依赖资源名称 |
path | String | 依赖资源的绝对路径 |
1.5.3 UdfSimpleInfo 注意: 手动选择函数依赖的方式, udfList参数中不会显示udf信息,请尽快下线, 推荐采用对接udf stuido的新方式使用.
名称 | 类型 | 描述 |
---|---|---|
uid | String | udf 函数唯一标识 |
name | String | udf名称 |
className | String | udf class |
resourceUid | String | udf 引用的资源文件 |
md5 | String | udf 引用的资源文件md5 |
1.5.4 StartJobResult
名称 | 类型 | 描述 |
---|---|---|
jobId | String | 唯一标识 |
jobName | String | 任务名称 |
isSuccess | Boolean | 是否成功 |
errorMessage | String | 异常信息 |
1.5.5 StopJobResult
名称 | 类型 | 描述 |
---|---|---|
jobId | String | 唯一标识 |
jobName | String | 任务名称 |
isSuccess | Boolean | 是否成功 |
errorMessage | String | 异常信息 |
1.5.6 RestartJobResult
名称 | 类型 | 描述 |
---|---|---|
jobId | String | 唯一标识 |
jobName | String | 任务名称 |
isSuccess | Boolean | 是否成功 |
errorMessage | String | 异常信息 |
1.5.7 JobStatus
名称 | 类型 | 描述 |
---|---|---|
jobId | String | 唯一标识 |
jobStatus | String | 任务状态 |
二、OpenAPI列表 2.1 OpenAPI总览
模块 | 名称 | 支持版本 | 状态 | 请求方法 | 请求路径 |
---|---|---|---|---|---|
任务管理 | 新建SQL任务 | v3.9.10 | 待上线 | POST | /job/v2/sql/create |
修改SQL任务 | v3.9.10 | 待上线 | POST | /job/v2/sql/modify | |
删除任务 | v3.9.10 | 待上线 | POST | /job/v2/delete | |
获取任务信息 | v3.9.10 | 待上线 | POST | /job/v2/detail | |
启动任务 | v3.9.10 | 待上线 | POST | /job/v2/start | |
停止任务 | v3.9.10 | 待上线 | POST | /job/v2/stop | |
重启任务 | v3.9.10 | 待上线 | POST | /job/v2/restart | |
获取任务当前状态 | v3.9.10 | 待上线 | POST | /job/v2/status |
2.1.1 新建SQL 任务 POST /job/v2/sql/create
- 版本:3.9.10
- 描述:创建SQL类型的任务
- URL参数/请求体
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
user | String | 用户邮箱 | 是 | |
jobName | String | 任务名称 | 是 | |
engineType | EngineTypeEnum | 引擎类型,枚举值 | 是 | |
folderPath | String | 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录 | 否 | |
rawSql | String | sql语句,sql最好传入\n用于分隔 | 是 | |
description | String | 任务描述 | 否 | |
dependencyIds | Array | 依赖文件id列表 | 否 | |
paramSetList | Array | 参数组依赖 | 否 | |
jobTaskConfig | JobTaskConfig | 任务配置 | 否 | |
jobResourceConfig | JobResourceConfig | 资源配置 | 是 | 如果资源配置中设置了资源实例和队列, 可以不选. |
alarmInfo | AlarmInfo | 告警配置 | 否 | 默认配置 |
请求示例:
{
"product":"sloth",
"clusterId":"dev4",
"user":"xxxx@corp.netease.com",
"jobName":"jarName",
"engineType":"FLINK1_12_0",
"folderPath":"/tmp/dir",
"rawSql":"this is sql",
"description":"sql job description",
"dependencyIds":[
1,
2,
4
],
"paramSetList":[
{
"id":1,
"priority":1
},
{
"id":2,
"priority":2
}
],
"jobTaskConfig":{
"checkpointSwitch":true,
"checkpointMode":"EXACTLY_ONCE"
},
"jobResourceConfig":{
"resourceInstanceName":"sloth_yarn_cluster_name",
"queueName":"sloth_queue_name"
}
}
返回示例:
名称 | 类型 | 描述 |
---|---|---|
jobId | Integer | 新创建任务的id |
{
"code": 0,
"msg": "success",
"result": {
"jobId":"104722"
},
"requestId": null,
"reqId": null,
"cost": 2072,
"success": true
}
2.1.2 修改SQL任务 POST /job/v2/sql/modify
- 版本:3.9.10
- 描述:修改SQL类型的任务
- URL参数/请求体
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobId | String | 任务id | 是 | |
jobName | String | 任务名称 | 是 | |
engineType | EngineTypeEnum | 引擎类型,枚举值 | 是 | |
folderPath | String | 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录 | 否 | |
rawSql | String | sql语句,需要传入分割符 | 是 | |
description | String | 任务描述 | 否 | |
dependencyIds | Array | 依赖文件id列表 | 否 | |
paramSetInfo | Array | 参数组依赖 | 否 | |
jobTaskConfig | JobTaskConfig | 任务配置 | 否 | |
jobResourceConfig | JobResourceConfig | 资源配置 | 否 | |
alarmInfo | AlarmInfo | 告警配置 | 否 | 不传不会修改 |
请求示例:
{
"jobId": "104722",
"product": "sloth",
"clusterId": "dev4",
"user": "xxxx@corp.netease.com",
"jobName": "jarName",
"engineType": "FLINK1_12_0",
"folderPath": "/tmp/dir",
"rawSql": "this is sql",
"description": "sql job description",
"dependencyIds": [
1,
2,
4
],
"paramSetInfo" : [
{
"id" : 1,
"priority" : 1
},
{
"id" : 2,
"priority" : 2
}
],
"jobTaskConfig" : {
"checkpointSwitch" : true,
"checkpointMode" : "EXACTLY_ONCE"
},
"jobResourceConfig" : {
"resourceInstanceName" : "sloth_yarn_cluster_name",
"queueName" : "sloth_queue_name"
}
}
返回示例:
{
"code": 0,
"msg": "success",
"result": null,
"requestId": null,
"reqId": null,
"cost": 2072,
"success": true
}
2.1.3 获取任务信息 POST /job/v2/detail
- 版本:3.9.10
- 描述:获取最新版本任务信息
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobId | String | 任务id | 是 |
- 请求示例:
{
"user": "xxxxxx@corp.netease.com",
"product": "sloth",
"clusterId": "dev4",
"jobId": 1000056
}
- 响应体描述:
名称 | 类型 | 描述 |
---|---|---|
jobBasicInfo | JobBasicInfo | 任务的基本信息 |
- 响应体示例:
{
"code": 0,
"msg": "success",
"result": {
"jobBasicInfo": {
"jobId": 1000056,
"jobName": "测试任务2-rename",
"jobType": "SQL",
"rawSql": "[{\"cellType\":\"flink.sql\",\"enable\":true,\"key\":\"743a695f-9099-11ec-ad7c-fa163ea49987\",\"source\":[\"--SQL\",\"--********************************************************************--\",\"--Author: 杨晓航\",\"--CreateTime: 2021-12-09 15:57:41\",\"--Comment: 请输入业务注释信息\",\"--********************************************************************--\",\"CREATE TABLE user_log (\",\"user_id VARCHAR,\",\"item_id VARCHAR,\",\"category_id VARCHAR,\",\"behavior VARCHAR,\",\"ts VARCHAR\",\") WITH (\",\"'connector' = 'datagen'\",\"-- , 'number-of-rows' = '10'\",\");\",\"\",\"create table print_table WITH ('connector' = 'print')\",\"LIKE user_log (EXCLUDING ALL);\",\"\",\"insert into print_table\",\"select * from user_log;\"],\"title\":\"SQL\"}]",
"udfList": [
{
"uid" : "xxxxxxxxxx"
"name": "udf_function",
"className": "com.xxx.xx",
"resourceUid": "xxxxxxxxx",
"md5":"xxxxxx"
}
],
"paramSetList": [
{
"id" : 1,
"name" : "sloth_param_set_1"
"priority" : 1,
},
{
"id" : 2,
"name" : "sloth_param_set_2"
"priority" : 2,
}
]
"fileList": [],
"creator": "xxxxxx@corp.netease.com",
"createTime": "2021-12-09T07:57:41.000+0000",
"publisher": "xxxxxx@corp.netease.com",
"env": 381,
"category": 351,
"tags": [],
"description": "xxxxxx",
"lastStartJobExecHistoryId": 2745,
"startExecId": 2036,
"lastResourceInstanceId": 1,
"jobStatus": "FAILED",
"applicationId": "",
"flinkUrl": "http://sloth-test2.dg.163.org:8088/proxy/application_1645065290019_0491/#/overview",
"monitorUrl": "http://sloth.bdms.netease.com/grafana/d/rZuGINgWk/sloth?orgId=1&var-jobAppKey=1000056&var-jobSource=sloth&from=1648028948000&to=1648696837704"
}
},
"requestId": dcaf583d,
"success": true
}
POST /job/v2/delete
- 版本:3.9.10
- 描述:删除调用方传入的任务列表
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobIds | String | 待删除的任务id集合,支持传入多个任务,任务id间用逗号分割 | 是 |
- 请求示例:
{
"user": "xxxxx@corp.netease.com",
"product": "sloth",
"clusterId": "dev4",
"jobIds": "1000074,1000071"
}
- 响应体:
返回操作记录的id
{
"code":0,
"msg":"success",
"result":1354,
"requestId":"dcaf583d",
"success":true
}
2.1.5 启动任务 POST /job/v2/start
- 版本:3.9.10
- 描述:启动调用方传入的任务
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobInfos | Array | 任务的启动信息 | 是 |
- 请求示例:
{
"user": "xxxxxx@corp.netease.com",
"product": "sloth",
"clusterId": "dev4",
"jobInfos": [
{
"jobId": 1000074,
"startMode": "NONE",
"statePath": "hdfs://dev4/user/sloth/sloth-fs-savepoints/spt/ckp-111"
}
]
}
- 响应体描述:
名称 | 类型 | 描述 |
---|---|---|
results | Array | 启动任务的基本信息 |
- 响应体示例:
{
"code":0,
"msg":"success",
"result":{
"results":[
{
"jobId":1000074,
"jobName":"testOpenApi",
"isSuccess":true,
"errorMessage":""
}
]
},
"requestId":"914abf5efc64444d92f92418e3c9840c",
"success":true
}
2.1.6 停止任务 POST /job/v2/stop
- 版本:3.9.10
- 描述:停止调用方传入的任务
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobInfos | Array | 任务的停止信息 | 是 |
- 请求示例:
{
"user":"wanglei20@corp.netease.com",
"product":"sloth",
"clusterId":"dev4",
"jobInfos":[
{
"jobId":1000096,
"triggerSavepoint":false
}
]
}
- 响应体描述:
名称 | 类型 | 描述 |
---|---|---|
results | Array | 停止任务的基本信息 |
- 响应体实例:
{
"code":0,
"msg":"success",
"result":{
"results":[
{
"jobId":1000096,
"jobName":"sqlOpenApiTest3",
"isSuccess":true,
"errorMessage":""
}
]
},
"requestId":"9483bdc3f6d84be7a74f26cb78bd4b6a",
"success":true
}
2.1.7 重启任务 POST /job/v2/restart
- 版本:3.9.10
- 描述:重新启动调用方传入的任务
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobInfos | Array | 任务的重启信息 | 是 |
- 请求示例:
{
"user":"xxxxxx@corp.netease.com",
"product":"sloth",
"clusterId":"dev4",
"jobInfos":[
{
"jobId":1000096,
"startMode":"NONE",
"statePath":"",
"triggerSavepoint":false
}
]
}
- 响应体描述:
名称 | 类型 | 描述 |
---|---|---|
results | Array | 重启任务的基本信息 |
- 响应体实例:
{
"code":0,
"msg":"success",
"result":{
"results":[
{
"jobId":1000096,
"isSuccess":true,
"errorMessage":""
}
]
},
"requestId":"19cd594800684549aa420e100f241fc5",
"success":true
}
2.1.8 获取任务当前状态 POST /job/v2/status
- 版本:3.9.10
- 描述:批量获取调用方传入任务的当前状态信息
- URL参数/请求体:
名称 | 类型 | 描述 | 是否必传 | 默认值 |
---|---|---|---|---|
user | String | 用户邮箱 | 是 | |
product | String | 项目名称 | 是 | |
clusterId | String | 集群标识[英文] | 是 | |
jobIds | String | 待查询的任务id集合,支持传入多个任务,任务id间用逗号分割 | 是 |
- 请求示例:
{
"user":"xxxxx@corp.netease.com",
"product":"sloth",
"clusterId":"dev4",
"jobIds":"100056"
}
- 响应体描述:
名称 | 类型 | 描述 |
---|---|---|
jobStatusList | Array | 重启任务的基本信息 |
- 响应体实例:
{
"code":0,
"msg":"success",
"result":{
"jobStatusList":[
{
"jobId":"1000056",
"jobStatus":"FAILED"
}
]
},
"requestId":"dcaf583d",
"success":true
}
以上内容对您是否有帮助?