创建部署¶
在本地充分测试了 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 在部署期间自动执行以下操作
构建:根据定义的运行时环境将您的项目构建成一个 Bento。
推送:将 Bento 推送到 BentoCloud。
部署:通过按顺序执行以下步骤在 BentoCloud 上部署 Bento
将 Bento 容器化为符合 OCI 标准的镜像。
在 BentoCloud 上配置实例。
根据指定的配置在实例上启动 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 创建部署。