跳转到主要内容

Backend.AI 客户端 SDK

项目描述

PyPI version Python Versions SDK Documentation Build Status (Linux) Build Status (Windows) Code Coverage

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 命令提供的说明。

重点:startapp 命令

backend.ai startrun 命令类似,它创建一个新的计算会话,但不会在那里执行任何操作。您随后可以调用 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

重点:psrm 命令

您可以使用您的 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 终止后重复使用。

要终止会话,您可以使用 terminaterm 命令。

$ 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来重新安装它。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

backend_ai_client-24.3.10.tar.gz (133.9 kB 查看哈希值)

上传于

构建分发

backend.ai_client-24.3.10-py3-none-any.whl (170.0 kB 查看哈希值)

上传于 Python 3

由以下提供支持