创建部署

在本地充分测试了 BentoML Service 后,您可以将其推送到 BentoCloud 以进行生产部署。

将新项目部署到 BentoCloud

您可以通过命令行界面 (CLI) 或 Python API 部署新项目。请确保您已定义了运行时环境

运行以下命令,并使用 -n 标志(可选)设置名称。部署状态将在您的终端中实时更新。

bentoml deploy -n <deployment_name>

注意

默认情况下,此命令会打包执行它的目录下的所有文件。要排除特定文件或目录,请在 .bentoignore 文件中定义它们。

使用 bento 参数指定您的 BentoML 项目路径,并可选地设置一个名称。

import bentoml

bentoml.deployment.create(bento = "./path_to_your_project", name = "my_deployment_name")

您可以使用阻塞函数 wait_until_ready 周期性地检查部署的状态,直到它准备就绪或达到指定的超时时间。

import bentoml

dep = bentoml.deployment.create(bento="./path_to_your_project", name = "my_deployment_name")

dep.wait_until_ready(timeout=3600)

BentoML 在部署期间自动执行以下操作

  1. 构建:根据定义的运行时环境将您的项目构建成一个 Bento。

  2. 推送:将 Bento 推送到 BentoCloud。

  3. 部署:通过按顺序执行以下步骤在 BentoCloud 上部署 Bento

    1. 将 Bento 容器化为符合 OCI 标准的镜像。

    2. 在 BentoCloud 上配置实例。

    3. 根据指定的配置在实例上启动 BentoML Service。

注意

无需手动执行上述三个步骤(构建、推送和部署),这是一个长时间运行的自动化过程。

将现有 Bento 部署到 BentoCloud

如果您已经在本地构建了 Bento(运行 bentoml list 查看所有本地 Bento),您可以使用 BentoML CLI 或 Python API 进行部署。

运行以下命令,并使用 -n 标志(可选)设置名称。

bentoml deploy bento_name:version -n <deployment_name>

使用 bento 参数指定 Bento 标签,并可选地设置一个名称。

import bentoml

bentoml.deployment.create(bento = "bento_name:version", name = "my_deployment_name")

您可以使用阻塞函数 wait_until_ready 周期性地检查部署的状态,直到它准备就绪或达到指定的超时时间。

import bentoml

dep = bentoml.deployment.create(bento = "bento_name:version", name = "my_deployment_name")

dep.wait_until_ready(timeout=3600)

bentoml deploy 命令和 bentoml.deployment.create 函数会自动将 Bento 推送到 BentoCloud 并进行部署。如果您只需要与您的团队共享 Bento 并在稍后部署,可以通过运行以下命令将 Bento 推送到 BentoCloud

$ bentoml push <bento_name:version>

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Successfully pushed Bento "bento_name:version"                                                                                                                                   │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Pushing Bento "bento_name:version" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%  51.2/51.2 kB  ?  0:00:00

然后您可以在 BentoCloud 控制台上查看您推送的 Bento,该控制台提供了一个基于 Web 的图形用户界面 (UI),并使用该 Bento 创建部署。