> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siflow.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 通用服务管理

## 创建通用服务

支持通过 SDK 创建通用服务。示例如下：

注意：当前版本不支持配置健康检查探针（livenessProbe）参数

```python theme={null}
from siflow import SiFlow
from siflow.types.generalsvc import CreateGeneralsvcRequest, Image, Instance, Workload

client = SiFlow(
    region="cn-beijing",
    cluster="auriga",
)

res = client.generalsvc.create(
    request=CreateGeneralsvcRequest(
        name="testsdk",
        ports=[8000],
        useBaseUrl=False,
        workloads=[
            Workload(
                version="v1",
                replicas=1,
                resourcePool="cn-beijing-auriga-ai-infra-reserved-shared",
                instances=[
                     Instance(name="sci.c23-2", countPerPod=1),
                ],
                image=Image(
                    name="megatron",
                    version="0.12.1",
                    url="registry-cn-beijing.siflow.cn/siflow/megatron:0.12.1-a845aa7",
                    type="preset",
                ),
                cmd="""echo hello world""",
            )
        ]
    )
)
```

### 参数说明：

#### CreateGeneralsvcRequest

| 参数名称       | 类型              | 是否必填 | 说明            |
| ---------- | --------------- | ---- | ------------- |
| name       | str             | YES  | 服务名称          |
| ports      | List\[int]      | NO   | 服务端口          |
| workloads  | List\[Workload] | NO   | 工作负载配置        |
| useBaseUrl | bool            | NO   | 是否使用 base URL |

#### Workload

| 参数名称         | 类型              | 是否必填 | 说明      |
| ------------ | --------------- | ---- | ------- |
| versionName  | str             | NO   | 版本名称    |
| version      | str             | NO   | 版本号     |
| replicas     | int             | NO   | 副本数量    |
| resourcePool | str             | NO   | 资源池名称   |
| instances    | List\[Instance] | NO   | 实例配置    |
| image        | Image           | NO   | 镜像配置    |
| volumes      | List\[Volume]   | NO   | 存储卷挂载配置 |
| cmd          | str             | NO   | 启动命令    |
| endpoints    | Endpoints       | NO   | 服务接入点   |

#### Instance

| 参数名称        | 类型  | 是否必填 | 说明           |
| ----------- | --- | ---- | ------------ |
| name        | str | YES  | 实例名称         |
| countPerPod | int | YES  | 每个 Pod 的实例数量 |

#### Volume

| 参数名称     | 类型  | 是否必填 | 说明     |
| -------- | --- | ---- | ------ |
| volumeId | int | NO   | 存储卷 ID |
| mountDir | str | NO   | 挂载目录   |

#### Image

| 参数名称    | 类型  | 是否必填 | 说明     |
| ------- | --- | ---- | ------ |
| name    | str | YES  | 镜像名称   |
| version | str | YES  | 镜像版本   |
| url     | str | YES  | 镜像 URL |
| type    | str | YES  | 镜像类型   |

## 获取通用服务列表

支持通过 SDK 查询通用服务列表。使用示例如下：

```
res = client.generalsvc.list()
```

响应

```sql theme={null}
ListGeneralsvcsResponse(status=True, msg='Success', requestID='8d959bfb3fc8fee891f2a1396aa006a7', traceID='a31db0f49d9e3429ddd160bbd44e709c', data=None, total=1, page=1, pageSize=15, rows=[GeneralsvcBrief(uuid='273b82a7-853c-4ad3-9540-1674360dd2fb', name='testsdk', workloadNum=1, ports=[8000], cronPolicy=CronPolicy(restartTime=CronInfo(actionTime=None, enable=None), onlineTime=CronInfo(actionTime=None, enable=None), offlineTime=CronInfo(actionTime=None, enable=None)), status='NotReady', statusMsg='没有正常运行的工作负载版本', isOnline=True, createTime='2025-09-11T02:56:44Z', updateTime='2025-09-11T02:56:44Z')])
```

### 参数说明：

#### ListGeneralsvcsRequest

| 参数名称           | 类型  | 是否必填 | 说明      |
| -------------- | --- | ---- | ------- |
| status         | str | NO   | 服务状态    |
| name           | str | NO   | 服务名称    |
| generalsvcUUID | str | NO   | 服务 UUID |
| sortBy         | str | NO   | 排序字段    |

#### ListGeneralsvcsResponse

| 参数名称      | 类型                     | 是否必填 | 说明    |
| --------- | ---------------------- | ---- | ----- |
| status    | bool                   | YES  | 是否成功  |
| msg       | str                    | YES  | 返回信息  |
| requestID | str                    | NO   | 请求 ID |
| traceID   | str                    | NO   | 追踪 ID |
| total     | int                    | YES  | 总数量   |
| page      | int                    | YES  | 当前页码  |
| pageSize  | int                    | YES  | 每页数量  |
| rows      | List\[GeneralsvcBrief] | NO   | 服务列表  |

#### GeneralsvcBrief

| 参数名称        | 类型         | 是否必填 | 说明      |
| ----------- | ---------- | ---- | ------- |
| uuid        | str        | YES  | 服务唯一 ID |
| name        | str        | YES  | 服务名称    |
| workloadNum | int        | YES  | 工作负载数量  |
| ports       | List\[int] | NO   | 服务端口    |
| cronPolicy  | CronPolicy | NO   | 定时策略    |
| status      | str        | YES  | 当前状态    |
| statusMsg   | str        | YES  | 状态信息    |
| isOnline    | bool       | YES  | 上线状态    |
| createTime  | str        | YES  | 创建时间    |
| updateTime  | str        | YES  | 最后更新时间  |

## 删除通用服务

支持通过 SDK 删除指定的通用服务。使用示例如下，其中传入的 ID 为通用服务的 UUID

```
res = client.generalsvc.delete(id='273b82a7-853c-4ad3-9540-1674360dd2fb')
```
