管理计算实例¶
计算实例为 SQL、工作流和数据处理任务提供运行容量。本页说明如何选择规格、创建实例、观察运行状态,以及在确认依赖后暂停、启动或删除实例。
前提条件¶
已准备 Product API Base URL、个人访问令牌和工作区 ID。
当前身份具有计算实例的读取或管理权限。
已了解将要运行的任务类型和容量需求。
计算规格由平台统一提供。普通开发者应从规格列表选择 spec_id,不应自行创建或修改规格。
计算实例生命周期¶
读取可用规格和 Worker 镜像
→ 创建计算实例并保存 resource_id
→ 查询详情、运行时或指标
→ 按需暂停、恢复或重试
→ 删除预检
→ 删除计算实例
创建、暂停、启动、重试和删除可能需要后台完成。HTTP 请求成功表示操作已经受理,不表示计算实例已经达到目标状态;继续读取实例详情中的 status 和 status_message。
相关接口¶
方法与路径 |
用途 |
|---|---|
|
列出当前工作区可选择的计算规格。 |
|
列出可选 Worker 镜像。 |
|
创建计算实例。 |
|
列出计算实例。 |
|
读取实例详情和状态。 |
|
更新实例配置。 |
|
读取各 Worker 的运行时状态。 |
|
读取实例用量指标。 |
|
暂停实例。 |
|
启动实例。 |
|
重试失败的生命周期操作。 |
|
检查删除依赖。 |
|
删除实例。 |
选择规格¶
先读取当前可用的规格:
curl "$PRODUCT_API_BASE_URL/compute-resource-specs" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
从响应中选择已启用并满足任务需求的规格,保存其 id。规格可能包含 kind、CPU、内存、GPU 和每小时 Credit 等信息;可选值以本次响应为准。
如果需要指定 Worker 镜像,再读取镜像列表:
curl "$PRODUCT_API_BASE_URL/compute-resources/worker-images" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
不要把镜像地址直接写入创建请求。需要自定义镜像时,使用列表返回的镜像 ID、Worker 类型和平台信息。
创建计算实例¶
下面的请求创建一个最小计算实例。cpu 和 memory_gib 应与所选规格的容量保持一致:
curl -X POST "$PRODUCT_API_BASE_URL/compute-resources" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "data-processing",
"description": "用于数据处理任务",
"spec_id": "<SPEC_ID>",
"cpu": 2,
"memory_gib": 4,
"min_replicas": 1,
"max_replicas": 2
}'
字段 |
类型 |
必需 |
说明 |
|---|---|---|---|
|
string |
是 |
工作区内便于识别的实例名称。 |
|
string |
是 |
从规格列表取得的规格 ID。实例类型和标准容量以该规格为准。 |
|
integer |
是 |
CPU 数量。使用所选规格对应的值。 |
|
integer |
是 |
内存容量,单位为 GiB。使用所选规格对应的值。 |
|
string |
否 |
实例用途说明。 |
|
integer |
否 |
最小副本数。不得大于 |
|
integer |
否 |
最大副本数。 |
|
integer |
否 |
无活动后自动暂停的等待时间。 |
|
object[] |
否 |
Worker 镜像选择。使用镜像列表返回的标识和类型。 |
成功响应返回计算实例对象:
{
"code": "OK",
"msg": "OK",
"data": {
"id": "<RESOURCE_ID>",
"workspace_id": "<WORKSPACE_ID>",
"name": "data-processing",
"spec_id": "<SPEC_ID>",
"status": "DEPLOYING",
"status_message": "",
"current_replicas": 0,
"desired_replicas": 1
}
}
保存 data.id。随后读取 GET /compute-resources/{resource_id},而不是根据创建请求耗时推断实例是否可用。
读取运行状态和指标¶
实例详情给出整体状态;运行时接口进一步按 Worker 类型返回目标副本数、当前副本数和运行状态:
curl "$PRODUCT_API_BASE_URL/compute-resources/$RESOURCE_ID/runtime" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
指标接口返回计算实例 ID、累计 Credit 和分类明细:
curl "$PRODUCT_API_BASE_URL/compute-resources/$RESOURCE_ID/metrics" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
breakdown 的维度可能随实例类型不同而变化。读取前应允许未知字段,不要依赖固定的明细键集合。
暂停、启动和重试¶
以下操作不需要请求体:
curl -X POST "$PRODUCT_API_BASE_URL/compute-resources/$RESOURCE_ID/suspend" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
将路径末尾改为 resume 可启动实例;只有实例处于可重试的失败状态时才使用 retry。每次操作后重新读取详情,直到 status 达到预期状态或进入失败终态。
暂停会影响依赖该计算实例的新任务和正在运行的任务。操作前先确认关联工作负载,并让调用方能够处理实例启动带来的等待时间。
删除前检查依赖¶
删除前先调用预检:
curl "$PRODUCT_API_BASE_URL/compute-resources/$RESOURCE_ID/preflight-delete" \
-H "X-API-Key: $PRODUCT_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID"
{
"code": "OK",
"msg": "OK",
"data": {
"active_tasks": 1,
"active_task_ids": ["<TASK_ID>"],
"bound_workflows": 1,
"bound_workflow_details": []
}
}
当 active_tasks 或 bound_workflows 大于 0 时,先停止任务或把工作流迁移到其他计算实例。依赖处理完成后重新预检,再发送删除请求。删除不可恢复,也可能被默认计算实例或权限规则阻止。
常见问题¶
现象 |
先检查 |
下一步 |
|---|---|---|
创建请求被拒绝 |
|
重新读取规格,不沿用其他环境保存的 ID。 |
长时间处于部署中或扩缩容中 |
|
保留计算实例 ID,查询详情;不要重复创建同名实例。 |
暂停后任务调用变慢 |
实例是否正在启动 |
延长调用等待时间,并在实例可用后再判断任务是否失败。 |
无法删除 |
删除预检、默认计算实例限制和权限 |
先解除任务及工作流依赖,再重新预检。 |
指标明细为空 |
实例是否刚创建或尚未产生工作负载 |
结合实例状态和任务记录判断,不把空明细直接当作接口失败。 |