Backend.AI 客户端 SDK
项目描述
Backend.AI 官方客户端 SDK
使用(密钥对模式)
您应该将访问密钥和秘密密钥作为环境变量设置以使用 API。从 cloud.backend.ai 或您的集群管理员那里获取密钥对。
在 Linux/macOS 上,创建一个名为 my-backend-ai.sh 的 shell 脚本,在运行 backend.ai 命令之前运行它
export BACKEND_ACCESS_KEY=...
export BACKEND_SECRET_KEY=...
export BACKEND_ENDPOINT=https://my-precious-cluster
export BACKEND_ENDPOINT_TYPE=api
在 Windows 上,创建一个名为 my-backend-ai.bat 的批处理文件,在运行 backend.ai 命令之前运行它
chcp 65001
set PYTHONIOENCODING=UTF-8
set BACKEND_ACCESS_KEY=...
set BACKEND_SECRET_KEY=...
set BACKEND_ENDPOINT=https://my-precious-cluster
set BACKEND_ENDPOINT_TYPE=api
请注意,您需要切换到 UTF-8 字符集以正确显示控制台日志中使用的特殊字符。
使用(会话模式)
将 BACKEND_ENDPOINT_TYPE 修改为“session”,并将端点设置为控制服务器的URL。
export BACKEND_ENDPOINT=https://my-precious-cluster
export BACKEND_ENDPOINT_TYPE=session
$ backend.ai login
User ID: myid@mydomain.com
Password:
✔ Login succeeded!
$ backend.ai ... # run any command
$ backend.ai logout
✔ Logout done.
会话过期超时由控制服务器设置。
命令行界面
backend.ai 命令是所有子命令的入口点。(或者您可以使用冗长的版本:python -m ai.backend.client.cli)
重点:run 命令
run 命令可以在动态创建的 Backend.AI 计算会话上执行代码片段或代码源文件。
要直接在命令行中运行指定的代码,使用 -c 选项传递代码字符串(如shell)。
$ backend.ai run python:3.6-ubuntu18.04 -c "print('hello world')"
∙ Client session token: d3694dda6e5a9f1e5c718e07bba291a9
✔ Kernel (ID: zuF1OzMIhFknyjUl7Apbvg) is ready.
hello world
默认情况下,您需要指定带有完整版本标签的语言,例如 python:3.6-ubuntu18.04。根据 Backend.AI 管理员的语言别名设置,这可以缩短为 python。如果您想了解定义的语言别名,请联系 Backend.AI 服务器的管理员。
对于更复杂的程序,您可以上传多个文件,然后构建并执行它们。下面是一个运行 示例 C 程序 的简单示例。
$ git clone https://gist.github.com/achimnol/df464c6a3fe05b21e9b06d5b80e986c5 c-example
Cloning into 'c-example'...
Unpacking objects: 100% (5/5), done.
$ cd c-example
$ backend.ai run gcc:gcc6.4-alpine3.8 main.c mylib.c mylib.h
∙ Client session token: 1c352a572bc751a81d1f812186093c47
✔ Kernel (ID: kJ6CgWR7Tz3_v2WsDHOwLQ) is ready.
✔ Uploading done.
✔ Build finished.
myvalue is 42
your name? LABLUP
hello, LABLUP!
请参阅 --help 命令提供的说明。
重点:start 和 app 命令
backend.ai start 与 run 命令类似,它创建一个新的计算会话,但不会在那里执行任何操作。您随后可以调用 backend.ai run -t <sessionId> ... 来执行代码片段,或者使用 backend.ai app 命令启动一个指向容器服务(如 Jupyter)的本地代理,该服务在计算会话内运行。
$ backend.ai start -t mysess -r cpu=1 -r mem=2g lablup/python:3.6-ubuntu18.04
∙ Session ID mysess is created and ready.
∙ This session provides the following app services: ipython, jupyter, jupyterlab
$ backend.ai app mysess jupyter
∙ A local proxy to the application "jupyter" provided by the session "mysess" is available at: http://127.0.0.1:8080
重点:ps 和 rm 命令
您可以使用您的 API 密钥对查看当前正在运行的会话列表。
$ backend.ai ps
Session ID Lang/runtime Tag Created At Terminated At Status CPU Cores CPU Used (ms) Total Memory (MiB) Used Memory (MiB) GPU Cores
------------ ------------------------ ----- -------------------------------- --------------- -------- ----------- --------------- -------------------- ------------------- -----------
88ee10a027 lablup/python:3.6-ubuntu 2018-12-11T03:53:14.802206+00:00 RUNNING 1 16314 1024 39.2 0
fce7830826 lablup/python:3.6-ubuntu 2018-12-11T03:50:10.150740+00:00 RUNNING 1 15391 1024 39.2 0
如果您在 run 命令中设置了 -t 选项,它将用作会话 ID——您可以使用它为您的会话分配一个易于输入的别名。这些会话 ID 可以在当前会话使用相同 ID 终止后重复使用。
要终止会话,您可以使用 terminate 或 rm 命令。
$ backend.ai rm 5baafb2136029228ca9d873e1f2b4f6a
✔ Done.
重点:proxy 命令
要使用 GraphiQL 等管理员 API 开发工具,运行一个不安全的本地 API 代理。这将把所有必要的授权头附加到您的普通 HTTP API 请求中。
$ backend.ai proxy
∙ Starting an insecure API proxy at https://127.0.0.1:8084
更多命令?
请运行 backend.ai --help 以查看更多命令。
故障排除(常见问题解答)
有关 Windows 上 Anaconda 和 simplejson 的错误报告。自 v1.0.5 版本以来,此包不再依赖于 simplejson,因此您可以从 Python 3.5+ 提供的几乎相同的标准库 json 模块安全地卸载它。
如果您确实需要保留 simplejson 包,请手动卸载现有的 simplejson 包,并尝试通过从此处下载预构建的二进制 wheel来重新安装它。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。