Notebook
创建Notebook实例
1.接口说明
接口路径:/ac/openapi/v2/notebook/actions/create
请求方式:POST
请求数据类型:
接口描述:创建Notebook实例
2.请求消息
请求参数:
Headers:
| 名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| token | string | 是 | 接口凭证 | eyJhbGciOiJIUzI1N... |
参数:
| 名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| clusterId | string | 是 | 区域ID | 11250 |
| imagePath | string | 是 | 镜像地址 | Image.ac.com:5000/dcu/admin/base/jupyterlab:3.2.9-python3.8.3-dtk22.04.1 |
| imageName | string | 是 | 镜像名称 | jupyterlab:3.2.9-python3.8.3-dtk22.04.1 |
| imageSize | string | 是 | 镜像大小 | 120GB |
| acceleratorType | string | 是 | 加速器类型 | DCU |
| acceleratorNumber | string | 是 | 加速器数量 | 1 |
| resourceGroupCode | string | 否 | 资源分组code | nv4090normalfea13c83 |
| mountHome | boolean | 否 | 是否挂载用户主目录,默认true | true |
| startCommand | string | 否 | 启动容器时指定的命令,随容器启动同步执行 | python ~/train.py |
| mountInfo | array | 否 | 自定义挂载信息 | |
| sourcePath | string | 是 | 挂载源路径(用户主目录下路径) | /public/home/sugon |
| targetPath | string | 是 | 挂载目标路径 | /opt/sugon_data |
| permission | string | 是 | 权限(ro、rw)默认ro | rw |
3.请求示例
cURL请求示例
shell
curl --location --request POST 'https://scnet-demo.accloud.cn/ac/openapi/v2/notebook/actions/create' \
--header 'token: <Token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"resourceGroupCode": "ks100ksa048d1a0",
"acceleratorNumber": "1",
"acceleratorType": "DCU",
"clusterId": "200185",
"imageName": "jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10",
"imagePath": "image.ac.com:5000/dcu/admin/base/jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10",
"imageSize": "7338398370",
"mountHome": false,
"startCommand": "sleep 100",
"mountInfo": [
"sourcePath": "/public/home/test/data",
"targetPath": "/root/test",
"permission": "rw"
]
}'Java请求示例
java
import okhttp3.*;
public class CreateNotebookDemo {
public static final String TOKEN = "<Token>";
public static final String URL = "https://scnet-demo.accloud.cn/ac/openapi/v2/notebook/actions/create";
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
String jsonBody = "{\n" +
" \"resourceGroupCode\": \"ks100ksa048d1a0\",\n" +
" \"acceleratorNumber\": \"1\",\n" +
" \"acceleratorType\": \"DCU\",\n" +
" \"clusterId\": \"200185\",\n" +
" \"imageName\": \"jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10\",\n" +
" \"imagePath\": \"image.ac.com:5000/dcu/admin/base/jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10\",\n" +
" \"imageSize\": \"7338398370\",\n" +
" \"mountHome\": false,\n" +
" \"startCommand\": \"sleep 100\",\n" +
" \"mountInfo\": [\n" +
" {\n" +
" \"sourcePath\": \"/public/home/test/data\",\n" +
" \"targetPath\": \"/root/test\",\n" +
" \"permission\": \"rw\"\n" +
" }\n" +
" ]\n" +
"}";
RequestBody body = RequestBody.create(mediaType, jsonBody);
Request request = new Request.Builder()
.url(URL)
.method("POST", body)
.addHeader("token", TOKEN)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}Python请求示例
python
import requests
import json
url = "https://scnet-demo.accloud.cn/ac/openapi/v2/notebook/actions/create"
payload = json.dumps({
"resourceGroupCode": "ks100ksa048d1a0",
"acceleratorNumber": "1",
"acceleratorType": "DCU",
"clusterId": "200185",
"imageName": "jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10",
"imagePath": "image.ac.com:5000/dcu/admin/base/jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10",
"imageSize": "7338398370",
"mountHome": False,
"startCommand": "sleep 100",
"mountInfo": [
{
"sourcePath": "/public/home/test/data",
"targetPath": "/root/test",
"permission": "rw"
}
]
})
headers = {
"token": "<Token>",
"Content-Type": "application/json"
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)4.响应消息
返回参数:
| 名称 | 类型 | 描述 | 示例 |
|---|---|---|---|
| msg | string | 信息 | success |
| code | string | 状态码 | 0 |
| data | object | 任务信息 | |
| taskId | string | 任务ID | 1821067185941626882 |
| notebookId | string | NotebookID | 1821067171420946434 |
返回示例:
json
{
"code":"0",
"msg":"success",
"data":{
"taskId": "1821067185941626882",
"notebookId": "1821067171420946434"
}
}5.错误码
| 错误码 | 说明 |
|---|---|
| 0 | 成功 |
| 10001 | 内部错误 |
| 10003 | 参数不全 |
| 10004 | 参数无效 |
| 10007 | 用户已被冻结 |
| 10008 | 权限不足 |
| 10009 | 没有权限访问接口 |
| 10010 | 文件校验失败 |
| 10011 | 文件过大 |
| 10012 | 连接中断 |
| 716865 | 创建任务错误 |