跳到主要内容

创建实例

/instance/create

创建一个新实例。

授权

你可以在请求头(Request Header)中找到 AccessToken,或者从网页复制(Copy Auth Token)。
该 Token 在每次登录时生成,有效期为一天。

你也可以通过调用登录 API 来获取新的 Token。参考 登录 API

AccessToken 需要作为 cookie 包含在请求中。在下面的 cURL 示例中,可以看到使用 -b 参数传递 token:

-b 'AccessToken=your_token_here'

注意:请将 your_token_here 替换为实际的 AccessToken。 该 Token 是一个 JWT(JSON Web Token),其中包含了认证信息和权限。

请求体

你可以在网页的 “启动实例” 页面导出请求体。只需完成实例配置即可导出数据。

请求体的详细字段如下:

字段类型必填描述
namestring实例名称
imageIdstring实例使用的镜像 ID
instanceTypeIdstring实例类型 ID
regionstring实例启动所在的区域 ID
billingobject实例的计费配置
remoteStoragesarray远程存储配置数组
instanceConfigurationobject额外的实例配置信息
isSpotInstanceboolean是否为抢占式实例(默认:false)
nodePortsarray节点端口配置数组

计费配置(Billing Configuration)

billing 对象包含以下字段:

字段类型必填描述
chargeModestring计费模式("tidePerHour"、"perHour"、"perDay"、"perWeek"、"perMonth")
durationnumber当选择 "perDay"、"perWeek"、"perMonth" 时,表示订阅周期。例如:duration: 3chargeMode=perWeek 表示订阅 3 周。如果选择 "perHour"/"tidePerHour",应为 1。

远程存储配置(RemoteStorages Configuration)

remoteStorages 数组中每个对象包含以下字段:

字段类型必填描述
mountPathstring实例中的挂载路径
remoteStorageNamestring远程存储名称
remoteStorageIdstring远程存储唯一 ID
typestring存储类型(如 highspeedstorage、filesystem)

实例配置(Instance Configuration)

instanceConfiguration 对象包含以下字段:

字段类型必填描述
extraDataDiskSizeDBnumber额外数据盘大小(单位:GB,默认:0)
enableCommonDataboolean是否启用公共数据存储(默认:false)
enableDockerboolean是否启用 Docker 支持(默认:false)
dockerStorageSizenumberDocker 存储大小(单位:GB,默认:0)
initScriptstring启动时运行的初始化脚本

请求示例

{
"name": "example-instance",
"imageId": "7a81788c-xxxx-xxxx-xxxx-2409e3c8150c",
"instanceTypeId": "dc25f5be-xxxx-xxxx-xxxx-5030e3358c41",
"region": "fce31a0c-xxxx-xxxx-xxxx-41caa1bdd251",
"billing": {
"chargeMode": "perHour",
"duration": 1
},
"remoteStorages": [
{
"mountPath": "/root/highspeedstorage/example-volume",
"remoteStorageName": "example-volume",
"remoteStorageId": "f6a6345e-xxxx-xxxx-xxxx-e52e330cfaec",
"type": "highspeedstorage"
}
],
"instanceConfiguration": {
"extraDataDiskSizeDB": 0,
"enableCommonData": false,
"enableDocker": true,
"dockerStorageSize": 50,
"initScript": ""
},
"isSpotInstance": false,
"nodePorts": [7891, 7892]
}

cURL 示例

curl 'https://cloud.luchentech.com/api/instance/create' \
-H 'content-type: application/json' \
-b 'AccessToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicGxhdGZvcm0uY29sb3NzYWxhaS5jb20iXSwiZXhwIjoxNzUxNTI5Njg2LCJncm91cCI6WyJhZG1pbiJdLCJpYXQiOjE3NTE0NDMyODYsImlzcyI6ImNsb3VkLmx1Y2hlbnRlY2guY29tIiwic3ViIjoiMDhmNmYyNjEtYTc2Ni00NjNlLThiYTQtODVlNmFlMzJmNDkyIn0.pnTtcw2Spns2Xi_knR_LclTt4eJGUK-lDzIJxHEDi13p7gACVKpJz548QZGq891lg7jpiKpn4QJRgNYxrZQmSThmZVSbJnwmttz01ijy1cGKuq61UI3zaHLPIyVDhqVVjuch0KedFFC9ahr4jSPf6-7ibgaTN7ozHWsMkLKjDyDUPjYfAdfmIz2dtSxJ0WBC6-c4BkwcKOCjHj3eye9BI9c74JUOTVNinwIoKdOzdF5mqI83rVuVpS_7lSAfrsdscqFXRiGtHcHLrb9nLs2Jcv5IkIdnKo5zzRNdpKWYhQWPYKowSlSWDa5eZv-hw3EsyhiQAByZ5x6yYYn_R5Hxxxx' \
--data-raw '{"name":"example-instance","imageId":"7a81788c-xxxx-xxxx-xxxx-2409e3c8150c","instanceTypeId":"c531be90-xxxx-xxxx-xxxx-59d3d911e29e","region":"fce31a0c-xxxx-xxxx-xxxx-41caa1bdd251","billing":{"chargeMode":"perHour","duration":1},"remoteStorages":[],"instanceConfiguration":{"enableCommonData":false,"enableDocker":false, "initScript": ""},"nodePorts":[]}'

响应示例

成功响应

{
"instanceId": "notebook-78d36d6a-xxxx-xxxx-xxxx-eea5891c2019"
}

错误响应

{
"message": "字段 \"instanceConfiguration.enableDocker\" 未设置"
}
{
"code": -1,
"message": "未登录或登录已过期,请重新登录"
}