管理 Secret

Secrets 可以存储 API Key、认证 Token 和凭证等敏感数据,这些数据对于访问各种服务或资源至关重要。BentoCloud 提供了一个安全灵活的环境,可以将所需的 secrets 注入到 AI 模型部署中。

本文档介绍了如何在 BentoCloud 上创建和使用 secrets。

创建 Secret

通过 BentoCloud 控制台

  1. 导航到 Secrets 页面并点击 创建

  2. 选择如何创建您的 secret

    • 从模板创建: 使用预定义模板,适用于 OpenAI、AWS、Hugging Face 和 GitHub 等流行服务。这些模板设计时考虑了这些服务所需的通用 Key。

    • 自定义 secrets: 通过定义特定于模型需求的自定义键值对来创建 secret。

  3. 在设置页面上,提供 secret 所需的信息

    Screenshot of the BentoCloud interface for creating a new secret with fields for name, description, mounting options, and key-value pairs
    • 名称: Secret 的名称。

    • 描述: Secret 的描述,详细说明其用途。

    • 挂载方式:

      • 环境变量: secret 中的环境变量在镜像构建和部署容器中均可访问。

      • 文件: 将 secret 作为只读文件注入(或多个文件,取决于此 secret 中的键值对数量)。您需要指定 secret 将被挂载到容器内的目录路径;请确保此路径位于 $BENTOML_HOME 目录下。

    • Key: Secret Key 的名称。

    • : Secret Key 的值。如果以文件形式挂载,您可以选择指定其在 secret 路径中的子路径。例如,如果 secret 路径是 $BENTOML_HOME/demo,子路径是 secrets/password,则 Secret Key 的完整路径将是 $BENTOML_HOME/demo/secrets/password/<KEY_NAME>

  4. 如有需要,点击 添加 以添加另一个 secret 的键值对。

  5. 点击 保存 以存储 secret。

通过 BentoML CLI

要通过 BentoML 命令行界面创建 secret,请使用 secret 子命令。

bentoml secret create tmy-secret key1=value1 key2=value2

修改 Secret

  1. Secrets 页面上点击一个现有 secret。

  2. 在详情页面上,点击 编辑 并更新所需字段。

  3. 点击 更新 保存您的更改。需要注意的是,

    • 您不能修改 Secret Key 的名称。

    • 如果您更改了 Secret Key 的值,您需要重启使用该 secret 的部署,以便更新生效。

    • 如果您从现有 secret 中添加新的键值对或移除任何现有键值对,建议您重新创建使用该 secret 的部署。

为部署使用 secrets

通过 BentoCloud 控制台

  1. 在创建部署期间,从 Secrets 下拉菜单中选择所需的 secret。

  2. 将所需的 secret 附加到您的部署。它将根据创建 secret 时设置的配置,以环境变量或文件形式集成。

    Screenshot of BentoCloud deployment configuration showing how to select and attach a secret to a deployment

    警告

    当将多个 secrets 挂载到单个部署时,请确保这些 secrets 之间没有冲突的键值对。例如,不同的 secrets 不应包含相同名称但赋值不同的 Key。

通过 BentoML CLI

要将 secret 附加到部署,在使用 BentoML 命令行界面创建部署时使用 --secret 标志。

bentoml deploy --secret my-secret

要通过部署 YAML 配置文件附加 secret,将 secret 名称添加到 secrets 字段。

bento: bentovllm-llama3.1-8b-instruct-service:p34tavtlq25hkasc
name: bentovllm-llama-3-1-8-b-instruct-service-2qdl
access_authorization: false
secrets:
   - my-secret
services:
   bentovllm-llama3.1-8b-instruct-service:
      instance_type: gpu.l4.1
      envs: []
      scaling:
            min_replicas: 0
            max_replicas: 1
            policy:
               scale_up_behavior: fast
               scale_down_behavior: stable
      config_overrides:
            traffic:
               timeout: 300
               external_queue: false
               concurrency: 256
      deployment_strategy: Recreate
cluster: gcp-us-central-1