为了不便用户灵便调用 GPU 资源,平台提供通过 API 调用形式应用实例相干性能,目前仅对企业用户凋谢。
企业体验:GpuMall 智算云 | 省钱、好用、弹性。租 GPU 就上 GpuMall
立刻体验:https://gpumall.com/login?type=register&source=sifou
API 概览
平台对外提供的 API 如下:
API
阐明
获取平台 GPU 类型
查问平台以后可用显卡类型
获取镜像
查问以后账户可用的镜像,包含平台官网镜像和自定义镜像
创立实例
创立实例,依据平台举荐规定抉择符合条件的最优机器执行创立打算。查问操作后果
查问实例操作后果
查问实例
查问后果返回未开释实例
实例操作
API 调用仅反对开机、关机、重启和开释,更多简单操作请到网页端执行。
如何调用 API
- 申请企业资质
API 以后只针对企业用户凋谢,未开明企业资质请返回账户核心提交企业认证申请。
- 创立 API 密钥
API 调用须要先创立 API 密钥,能够在 ” 账户核心 – OpenAPI 密钥 ” 页面创立密钥,点击增加后即下载密钥到本地,后续无奈再反复下载,请妥善保存,切勿泄露。
编辑
- 终端节点
终端节点即调用 API 的申请地址目前平台提供的服务器调用地址如下:
申请地址
协定类型
https://api.gpumall.com
HTTPS
- 认证鉴权
所有 API 接口须要通过在 header 中携带平台的 API 密钥来进行身份认证。在 Header 中携带 API 密钥的音讯头域格局如下:
{
“gm-api-token”:”dWEwmaZxxxxxxxxx”
}
其中 gm-api-token 是平台自定义 header key。
- 返回后果
API 申请返回对立应用 JSON (对应申请 / 响应 header 为 Content-Type: application/json) 格局,通用构造如下:
{
“code”: 0,
“message”: “success”,
“traceid”: “180114fedf26b1177b44121fa5c1e5d9”,
“data”: {}
}
返回后果参数阐明:
音讯元素名
形容
code
申请响应码,申请胜利时为 0,失败时为相应的错误码,具体错误码请参考附录错误码阐明。message
申请胜利为 success, 申请失败为具体的业务错误信息
data
返回的业务数据
API 详情
- 获取平台 GPU 类型
接口阐明
申请 URI:/api/v1/open-api/gpu/list
申请办法:GET
申请参数 无 返回后果
参数名称
类型
形容
gpus
Array<string>
显卡类型数组,与高可用云 / 社区云的显卡类型统一
返回值示例
{
"code": 0,
"message": "success",
"traceid": "180114fedf26b1177b44121fa5c1e5d9",
"data": {
"gpus": [
"RTX 3090",
"RTX 4090",
"RTX 2080 Ti",
]
}
}
- 获取镜像
接口阐明
申请 URI:/api/v1/open-api/image/list
申请办法:GET
申请参数 无 返回参数 Image 参数形容
参数名称
类型
形容
type
String
镜像类型,user / official, user: 备份镜像,official: 官网镜像
imageId
String
镜像 Id,创立实例应用
name
String
镜像名称
返回示例
{
"code": 0,
"message": "success",
"traceid": "90223a7f6632b1176c74fa17445cfe0e",
"data": {
"images": [
{
"type": "official",
"name": "torch2.1.1-cuda12.1.0-py3.10",
"imageId": "torch2.1.1-cuda12.1.0-py3.10"
},
{
"type": "user",
"name": "AnythingV5-WebUI",
"imageId": "imgbgl8mu4msk375gdsd32smbogsuffm"
},
]
}
}
- 创立实例
接口阐明
申请 URI:/api/v1/open-api/instance/create
申请办法:POST
申请参数 Body
参数名称
类型
必填
形容
type
Integer
是
社区云: 1, 高可用云:2
gpuName
String
是
显卡类型,可通过获取显卡列表接口查问,或者从官网查问
skuName
String
是
领取形式, 取值范畴: 按量付费 (payg), 竞价 (bidding), 包天 (daily), 包周 (weekly), 包月 (monthly)
gpuNum
Integer
是
租用显卡数量
cpuNum
Integer
否
单卡调配 cpu 外围数
memory
Integer
否
单卡调配的内存
diskType
String
否
磁盘类型 (SSD/NVME)
tags
Array<String>
否
查问合乎某些标签的机器
imageId
String
是
创立实例应用的镜像 ID,可通过查问可用镜像列表获取
autoRenew
Boolean
否
是否设置到期主动续费,按量付费默认为主动续费,其余预付费领取形式默认为 false
duration
Integer
否
预付费实例租用周期,默认为 1
cmd
String
否
启动命令
env
String
否
环境变量
dryRun
Boole
否
空跑,为 true 时只做机器筛选和价格查看
返回参数 Data
参数名称
类型
形容
instanceId
Int64
实例 ID, dryRun=true 时为 0
operationId
Int64
以后操作 ID,dryRun=true 时为 0
spec
Object<Spec>
实例规格
Spec
参数名称
类型
形容
gpuName
String
显卡名称
vram
String
单卡显存大小,单位:G
skuName
String
领取类型,取值范畴:按量付费 (payg), 竞价 (bidding), 包天 (daily), 包周 (weekly), 包月 (monthly)
price
String
单价
cpuName
String
cpu 型号
cpuCoreNum
int
cpu 外围数,依据租用卡数按比例调配
memorySize
int
内存大小,依据租用卡数按比例调配
payByVoucher
int
是否反对代金券领取, 反对:1, 不反对:0
regionName
String
所在区域
返回示例
{
"code": 0,
"message": "success",
"traceid": "905b8753fb3db11760f67138872918cb",
"data": {
"InstanceId": 512300905672709,
"operationId": 512303116840965,
"spec": {
"gpuName": "RTX 3080",
"vram": "10G",
"skuName": "payg",
"price": "10",
"cpuCoreNum": 16,
"cpuName": "Intel Xeon Processor (Skylake, IBRS)",
"memorySize": 17179869184,
"payByVoucher": 1,
"regionName": "华东"
}
}
}
- 查问操作状态
接口阐明
申请 URI:/api/v1/open-api/instance/op/result
申请办法:POST
申请参数 Body
参数名称
类型
必填
形容
ids
Array<int>
是
操作 ID 列表
返回参数 Operation
参数名称
类型
形容
instanceId
Int64
实例 ID
status
int
操作实现状态 进行中:1,胜利:2,失败:3
action
String
以后进行中的操作
operationId
String
以后操作 ID
isCompleted
int
操作是否已实现, 已实现:1, 未实现: 0
startTime
String
开始工夫
completeTime
String
实现工夫
返回示例
{
"code": 0,
"message": "success",
"traceid": "287bfb0b8e3fb11797f57d7a4f92b05b",
"data": {
"operations": [
{
"instanceId": 512300905672709,
"operationId": 512303116840965,
"action": "stop",
"status": 2,
"isCompleted": 1,
"startTime": "2024-02-06 17:06:45",
"completeTime": "2024-02-06 17:06:47"
}
]
}
}
- 查问实例列表
接口阐明
申请 URI:/api/v1/open-api/instance/query
申请办法:GET
申请参数 Query
参数名称
类型
必填
形容
status
String
否
实例状态, 可选枚举值: stopd, running, creating
instanceId
Int
否
查问单个实例
pn
Integer
否
分页页码
ps
Integer
否
每页大小, 默认为 20
返回参数
参数名称
类型
形容
instances
Array<Instance>
实例数组
total
Integer
总数
Instance
参数名称
类型
形容
instanceId
int64
实例 ID
name
String
自定义实例名称
imageId
String
镜像 ID
status
String
实例状态
isPending
int
是否操作执行中, 1 为操作中
gpuName
String
显卡名称
gpuNum
Integer
显卡数量
skuName
String
租用形式: payg(按量付费), daily(包天), weekly(包周), monthly(包月),card_less(无卡启动)
createdAt
String
创立工夫
cpuCoreNum
Int
cpu 外围数
memorySize
int64
内存大小, 单位 Byte
systemDiskSize
int64
系统盘调配空间 (根目录 /),单位 byte
systemDiskUsedSize
int64
系统盘已用空间 (根目录 /), 单位 byte
dataDiskSize
int64
数据盘调配空间 (/gm-data),单位 byte
dataDiskUsedSize
int64
数据盘已用空间 (/gm-data), 单位 byte
sshCmd
String
ssh 登录命令
sshPwd
String
ssh 登录明码
notebookUrl
String
JupyterLab Notebook 拜访地址
tensorboardUrl
String
Tensorboard 拜访地址
customServices
Array<String>
自定义端口拜访地址(数组,每个元素为一个端口的对应拜访地址)operationId
int64
实例最近一次操作 id
返回示例
{
"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {
"instances": [
{
"instanceId": 504838617333765,
"name": "AnythingV5-WebUI",
"status": "stopd",
"imageId": "stable-diffusion-webui_v1.7.0",
"isPending": 0,
"gpuName": "RTX 3080",
"gpuNum": 0,
"skuName": "payg",
"operationId": 511642810499077,
"cpuCoreNum": 1,
"memorySize": 2147483648,
"systemDiskSize": 32212254720,
"systemDiskUsedSize": 4311059,
"dataDiskSize": 53687091200,
"dataDiskUsedSize": 0,
"sshCmd": "ssh -p 59064 root@xxxxx",
"sshPwd": "Q3rDHh7QEwgYsuPxYSdVbE9zzKQQW45e",
"notebookUrl": "http://xxxxx:42757/lab?token=f4jzygqwno3fecinx9arnetu",
"tensorboardUrl": "http://xxxxx:44634",
"customServices": ["http://xxxxx:48548"],
"createdAt": "2024-01-16 14:53:38"
}
],
"total": 1
}
}
- 实例操作
接口阐明
申请 URI:/api/v1/open-api/instance/action
申请办法:POST
申请参数 Body
参数名称
类型
必填
形容
instanceId
Int64
是
实例 ID
action
String
是
实例操作名称,仅反对 stop(实例关机), start(开机), restart(重启), release(开释)
返回参数
参数名称
类型
形容
operationId
Int64
操作 ID
返回示例
{
"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {"operationId": 511642810499077}
}
附录
- 申请返回的通用构造
{
“code”: 0,
“message”: “success”,
“traceid”: “180114fedf26b1177b44121fa5c1e5d9”,
“data”: {}
}
- HTTP 状态码
状态码
含意
形容
404
Not Found
申请 URI 不存在
403
Forbidden
申请未受权
200
OK
申请胜利
500
Internal Server Error
服务器谬误
- 罕用错误码
错误码
错误信息
形容
10001
服务器外部谬误
未定义的服务器外部谬误, 可提供单反馈帮助解决
10002
未登录或者登录已过期
个别是申请 header 中短少 gm-api-token
10005
参数谬误
参数校验谬误
10135
实例操作谬误
实例操作谬误,错误信息在 message 中