# 查询计算实例详情

读取一个计算实例的配置、容量和生命周期状态。

```text
GET https://moi.matrixorigin.cn/newmoi/compute-resources/{resource_id}
```

## 调用前准备

先[列出计算实例](list-compute-resources.md)或[创建计算实例](create-compute-resource.md)，取得 `resource_id`。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID 和计算实例 ID。

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：目标工作区 ID，通过 `X-Workspace-ID` Header 传递。
- `$RESOURCE_ID`：要查询的计算实例 ID，取自列表或创建接口的响应。

## 路径参数

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `resource_id` | string | 是 | 计算实例 ID。 |

## 请求示例

```bash
curl "https://moi.matrixorigin.cn/newmoi/compute-resources/$RESOURCE_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID"
```

## 成功响应

成功时返回 `200`，`data` 为计算实例对象。

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "cr-001",
    "name": "data-processing",
    "kind": "task",
    "spec_id": "task-standard-small",
    "status": "ACTIVE",
    "status_message": "",
    "min_replicas": 0,
    "max_replicas": 2,
    "current_replicas": 1
  }
}
```

响应字段如下。

字段路径中的 `[]` 表示数组中的每一项。例如，`data.worker_images[].worker_type` 表示 `data.worker_images` 数组中每一项的 `worker_type` 字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |
| `data.id` | string | 计算实例 ID。 |
| `data.workspace_id` | string | 所属工作区 ID。 |
| `data.name` | string | 计算实例名称。 |
| `data.description` | string | 实例说明；有值时返回。 |
| `data.spec_id` | string | 使用的计算规格 ID。 |
| `data.kind` | string | 实例类型。 |
| `data.cpu` | integer | CPU 配置值。 |
| `data.memory_gib` | integer | 以内存 GiB 表示的配置值。 |
| `data.gpu` | integer | GPU 配置值。 |
| `data.cpu_milli` | integer | 以毫核表示的 CPU 配置值。 |
| `data.memory_mib` | integer | 以内存 MiB 表示的配置值。 |
| `data.gpu_count` | integer | GPU 数量。 |
| `data.gpu_memory_mib` | integer | 单个 GPU 的显存 MiB。 |
| `data.gpu_cores` | integer | GPU 核心数。 |
| `data.min_replicas` | integer | Serverless 实例固定为 `0`。 |
| `data.max_replicas` | integer | 最大副本数。 |
| `data.desired_replicas` | integer | 目标副本数。 |
| `data.current_replicas` | integer | 当前副本数。 |
| `data.go_worker_image_id` | string | Go Worker 镜像 ID；有值时返回。 |
| `data.python_worker_image_id` | string | Python Worker 镜像 ID；有值时返回。 |
| `data.worker_images` | object（对象数组） | Worker 镜像选择；有值时返回。 |
| `data.worker_images[].worker_type` | string | Worker 类型。 |
| `data.worker_images[].image_id` | string | 镜像 ID。 |
| `data.worker_images[].platform` | string | 运行平台。 |
| `data.platform` | string | 实例运行平台；有值时返回。 |
| `data.auto_suspend_minutes` | integer | 自动暂停等待时间。 |
| `data.is_default` | boolean | 是否为工作区默认计算实例。 |
| `data.status` | string | 生命周期状态，例如 `IDLE`、`ACTIVE`、`SUSPENDED` 或 `ERROR`。 |
| `data.status_message` | string | 状态的补充信息。 |
| `data.scale_reason` | string | 服务端提供的缩放原因；有值时返回。 |
| `data.last_activation_at` | string | 最近一次激活时间；有值时返回。 |
| `data.last_active_at` | string | 最近一次活跃时间；有值时返回。 |
| `data.created_by` | string | 创建者标识；有值时返回。 |
| `data.created_at` | string | 创建时间；有值时返回。 |
| `data.updated_at` | string | 最后更新时间；有值时返回。 |

## 错误响应

```json
{
  "code": "NOT_FOUND",
  "msg": "对象不存在",
  "data": null
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 12 22 32 34

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - `401`
  - —
  - 缺少或无效的访问凭据。
  - 检查 API Key 和工作区 Header。
* - `403`
  - `ErrForbidden`
  - 当前身份没有读取实例的权限。
  - 使用有权限的凭据，或联系管理员授权。
* - `404`
  - `NOT_FOUND`
  - 实例不存在，或不属于当前工作区。
  - 检查 `resource_id` 和工作区。
```

## 后续操作

根据 `status` [查询 Worker 运行时](get-worker-runtime.md)、[更新计算实例](update-compute-resource.md)或执行生命周期操作。
