# 列出计算实例

列出当前工作区中调用者有读取权限的计算实例。

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

## 调用前准备

准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：要查询的工作区 ID，通过 `X-Workspace-ID` Header 传递。

## 请求示例

```bash
curl "https://moi.matrixorigin.cn/newmoi/compute-resources" \
  -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",
      "spec_id": "task-standard-small",
      "status": "IDLE",
      "current_replicas": 0,
      "max_replicas": 1
    }
  ]
}
```

响应字段如下。

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

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |
| `data` | object（对象数组） | 计算实例列表。 |
| `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[].status` | string | 当前生命周期状态。 |
| `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_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": "LIST_FAILED",
  "msg": "服务端错误",
  "data": null
}
```

### 常见 HTTP 错误

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

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - `401`
  - —
  - 缺少或无效的访问凭据。
  - 检查 API Key 和工作区 Header。
* - `403`
  - `ErrForbidden`
  - 当前身份没有查询计算资源的权限。
  - 使用有权限的凭据，或联系管理员授权。
* - `500`
  - `LIST_FAILED`
  - 服务无法读取计算资源列表。
  - 记录请求时间和错误信息后重试。
```

## 后续操作

保存 `data[].id`，再[查询计算实例详情](get-compute-resource.md)或[创建计算实例](create-compute-resource.md)。
