环境变量和先决条件设置#

注意

尽管本文档概述了某些云服务提供商 (CSP) 的程序,但强烈建议查阅官方公开的 CSP 文档,以获取最新和最全面的说明。 CSP 经常更新其服务和界面,因此务必依赖其当前指南,以确保准确性和最佳实施。

在配置模板中使用 lookup 函数#

配置模板 yml 文件包含有关基础设施和应用程序需求的多个输入。为了易于使用,其中一些已连接到查找环境变量。例如 {{ lookup(‘env’, ‘NGC_CLI_API_KEY’) }} 正在将其扩展到 NGC_CLI_API_KEY 环境变量。这意味着,我们可以为 NGC_CLI_API_KEY 设置一个环境变量及其值,部署脚本可以自动访问它。

环境变量定义#

默认情况下,示例环境变量文件 examples 文件夹如下所示。根据需要,您可以创建更多环境变量,并在 config-template yaml 文件中使用 lookup 函数。

cat my-config.env
export OPENAI_API_KEY="<replace-with-actual-value>"
export NGC_CLI_API_KEY="<replace-with-actual-value>"
export NVIDIA_API_KEY="<replace-with-actual-value>"
export ARM_TENANT_ID="<replace-with-actual-value>"
export ARM_SUBSCRIPTION_ID="<replace-with-actual-value>"
export ARM_CLIENT_ID="<replace-with-actual-value>"
export ARM_CLIENT_SECRET="<replace-with-actual-value>"

下表解释了 examples 文件夹中使用的每个环境变量的用途。

Azure 环境变量#

环境变量

定义

OPENAI_API_KEY

通过 API 访问 OpenAI 模型的密钥

NGC_CLI_API_KEY

通过命令行访问 NGC 资源的密钥。例如 Helm charts、模型、容器镜像等。

NVIDIA_API_KEY

通过命令行访问 NGC 资源的密钥。例如 Helm charts、模型、容器镜像等。此密钥专门用于访问 Nvidia NIM

ARM_TENANT_ID

您的 Azure Active Directory 租户的唯一标识符。

ARM_SUBSCRIPTION_ID

将部署资源的 Azure 订阅 ID。

ARM_CLIENT_ID

用于身份验证的 Azure 服务主体的应用程序(客户端)ID。

ARM_CLIENT_SECRET

与 Azure 服务主体关联的客户端密钥(本质上是密码)。当您在 Azure Active Directory 中设置服务主体时,将创建此密钥。

注意

如果您修改 <my-env-file.env> 文件或启动新的 shell,则必须在运行 ./envbuild.sh 之前再次运行 source <my-env-file.env>

设置 Azure 先决条件#

注意

此处预置的先决条件可用于多个项目,并且在大多数情况下可以视为一次性设置,除非参数对于任何部署都是不可接受的。

登录到 Azure 门户#

  • 以具有管理员访问权限的用户身份登录到 Azure 门户。

  • 单击 更多服务 以转到列出所有服务的页面。

  • 对于所有后续步骤,请导航回此页面以查找和创建新资源。

服务主体设置#

应用注册服务主体#

从所有服务页面

  • 从类别(左侧)中选择 标识

  • 选择 Azure Active Directory 服务。

  • 在服务配置面板(左侧)中选择 应用注册

  • 单击 +新注册 按钮以创建新的注册。

  • 在向导中

    • 名称:提供适当的名称。(例如,<my-org>-tokkio-automation

    • 支持的帐户类型:选择“仅限此组织目录中的帐户”。

    • 忽略所有其他字段。

    • 单击 注册

  • 您将被自动转到创建的应用注册。如果不是

    • 从所有服务,导航到 标识 类别下的 Azure Active Directory

    • 从服务配置面板中选择 应用注册

    • 选择创建的应用注册。

  • 从资源配置面板(左侧)中选择 证书和密钥

  • 单击 +新客户端密钥 按钮以创建新的客户端密钥。

  • 在向导中

    • 描述:提供适当的描述。

    • 到期时间:提供此密钥有效的期限。

    • 单击 添加

    • 复制创建的客户端密钥的值。

    注意

    一旦您退出此屏幕,该值将不再可见。

向应用注册授予订阅访问权限#

从所有服务页面

  • 从类别(左侧)中选择 常规

  • 选择 订阅 服务。

  • 选择将在其下部署 Tokkio 应用程序的订阅名称。

  • 从资源配置面板(左侧)中选择 访问控制 (IAM)

  • 选择 角色分配 选项卡。

  • 单击 +添加,然后单击“添加角色分配”选项以添加新的角色分配。

  • 在向导中

    • 角色:选择“所有者”。

    • 成员

      • 分配访问权限到:选择“用户、组或服务主体”。

      • 成员:单击 +选择成员 并选择应用注册的名称。

  • 单击 +添加,然后单击“添加角色分配”选项以添加新的角色分配。

  • 在向导中

    • 角色:选择“参与者”。

    • 成员

      • 分配访问权限到:选择“用户、组或服务主体”。

      • 成员:单击 +选择成员 并选择应用注册的名称。

资源组#

从所有服务页面

  • 从类别(左侧)中选择 常规

  • 选择 资源组 服务。

  • 单击 +创建 按钮以创建新的资源组。

  • 在向导中

    • 订阅:选择将在其下创建资源的订阅。

    • 资源组:提供适当的名称(例如,<<my-org>-tokkio-automation-pre-requisites>

    • 区域:选择要在其中创建资源组的区域(最好是离应用程序用户最近的区域)。

    • 导航到“下一步”以选择性地配置标签(在本设置的其余部分中,我们将跳过此步骤)。

    • 单击 查看 + 创建 > 创建

部署状态存储#

从所有服务页面

  • 从类别(左侧)中选择 存储

  • 选择 存储帐户 服务。

  • 单击 +创建 按钮以创建新的存储帐户。

  • 在向导中

    • 在“基本信息”部分中

      • 订阅:先前创建的 向应用注册授予订阅访问权限

      • 资源组:先前创建的 资源组

      • 存储帐户名称:提供适当的名称(例如,<myorg>tokkiodeploymentstate

      • 区域:为先前创建的 资源组 选择的区域。

      • 性能:选择“标准”。

      • 冗余:选择“本地冗余存储 (LRS)”。

      • 保持其余字段不变。

    • 保持所有其他部分不变。

    • 可以选择在“标签”部分下添加标签。

    • 单击 查看 + 创建 > 创建

  • 通过单击 转到资源 导航到创建的存储帐户,或

    • 从所有服务,导航到“存储”类别下的“存储帐户”

    • 选择创建的存储帐户。

  • 从资源配置面板(左侧)中选择 容器

  • 单击 +容器 以创建新的容器。

  • 在向导中

    • 名称:提供适当的名称(例如:deployment-state)

    • 公共访问级别:选择“专用”。

    • 单击“创建”。

基本域#

从所有服务页面

  • 从类别(左侧)中选择 Web

  • 选择 App Service Domains 服务。

  • 单击 +创建 按钮以创建新的域。

  • 在向导中

    • 在“基本信息”部分中

      • 订阅:先前创建的 资源组 的订阅。

      • 资源组:先前创建的 资源组

      • 域:将用于后续应用程序部署的基本域。

    • 在“联系信息”部分中 - 提供相关的联系信息。电子邮件必须是有效的电子邮件 ID。

    • 保持“高级”部分不变。

    • 可以选择在“标签”部分下添加标签。

    • 单击 查看 + 创建 > 创建

证书#

密钥保管库#

从所有服务页面

  • 从类别(左侧)中选择 安全

  • 选择 密钥保管库 服务。

  • 单击 +创建 按钮以创建新的密钥保管库。

  • 在向导中

    • 在“基本信息”部分中

      • 订阅:先前创建的 资源组 的订阅。

      • 资源组:先前创建的 资源组

      • 密钥保管库名称:提供适当的名称(例如:<my-org>-certificates-vault)。

      • 区域:为先前创建的 资源组 选择的区域。

      • 保持其余字段不变。

    • 在“访问策略”部分中

      • 添加额外的访问策略。

      • 密钥权限:选择“全选”。

      • 密钥权限:选择“全选”。

      • 证书权限:选择“全选”。

      • 轮换策略操作:选择“全选”。

      • 添加先前创建的 应用注册服务主体 作为主体。

      • 让所有其他配置保持不变。

      • 单击 查看 + 创建 > 创建

    • 保持“网络”部分不变。

    • 可以选择在“标签”部分下添加标签。

    • 单击 查看 + 创建 > 创建

通配符证书#

从所有服务页面

  • 从类别(左侧)中选择“Web”。

  • 选择“App Service 证书”服务。

  • 单击 +创建 按钮以创建新的证书。

  • 在向导中

    • 在“基本信息”部分中

      • 订阅:先前创建的 资源组 的订阅。

      • 资源组:先前创建的 资源组

      • SKU:通配符。

      • 裸域主机名:输入 *.<base-domain>,其中 <base-domain> 是先前创建的 基本域 的名称。

      • 证书名称:提供适当的名称(例如,<my-base-domain>-wildcard-certificate)。

      • 启用自动续订:可以选择“禁用”。

    • 可以选择在“标签”部分下添加标签。

    • 单击 查看 + 创建 > 创建

  • 通过单击 转到资源 导航到创建的证书,或

    • 从所有服务,导航到“Web”类别下的“App Service 证书”

    • 选择创建的证书。

  • 从资源配置面板(左侧)中选择 证书配置

    • 选择“存储”,然后选择“从密钥保管库选择”链接。

    • 在向导中

  • 导航回创建的证书,通过

    • 从所有服务,导航到“Web”类别下的 App Service Certificates

    • 选择创建的证书。

  • 从资源配置面板(左侧)中选择 证书配置

    • 选择 验证,然后单击 验证

    • 等待域名验证完成。

增加 GPU VM 类型的配额#

从所有服务页面

  • 从类别(左侧)中选择 其他

  • 选择 配额 服务。

  • 单击 计算

通过执行以下操作来验证是否存在足够的配额来创建应用程序虚拟机

  • 更新“区域”过滤器,以匹配将创建虚拟机的区域。

  • 在搜索框中,输入 NCASv3_T4

  • 检查可用用量是否至少是您希望在此设置下运行的实例数的 64 倍,如果不是,请编辑以请求额外的配额。

  • 在继续之前,等待配额增加的确认。