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

注意

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

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

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

环境变量定义#

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

cat my-env-file.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 AWS_SECRET_ACCESS_KEY="<replace-with-actual-value>"
export AWS_ACCESS_KEY_ID="<replace-with-actual-value>"

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

AWS 环境变量定义#

环境变量

定义

OPENAI_API_KEY

通过 API 访问 OpenAI 模型的密钥

NGC_CLI_API_KEY

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

NVIDIA_API_KEY

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

AWS_SECRET_ACCESS_KEY

AWS 密钥访问密钥 - 用于识别发出 API 请求的 AWS 账户和 IAM 用户或角色

AWS_ACCESS_KEY_ID

与 AWS_ACCESS_KEY_ID 结合使用的密钥值,用于验证 AWS API 请求。

注意

如果您修改了 <my-env-file.env> 文件或启动了新的 shell,您将必须再次运行 source <my-env-file.env>,然后再运行 ./envbuild.sh 命令。

设置 AWS 先决条件#

以下部分描述了有关如何设置先决条件的高级详细信息。

注意

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

登录到 AWS 控制台#

  • 登录到 AWS 控制台。

  • 单击左上角的“服务”以进入列出所有服务的页面。

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

IAM 用户访问密钥设置#

  • 在您的 AWS 账户上,获取访问密钥 ID 和密钥访问密钥,以便以编程方式访问您的 AWS 资源。

  • 最好获取具有管理员访问权限的非 root IAM 用户。

  • 请参阅 AWS 文档以创建访问密钥

部署状态存储#

后端状态#

  • 此脚本使用 S3 存储桶来存储对其启动的资源的引用。

  • 创建一个 S3 存储桶,用于存储部署状态。

  • 确保存储桶不是公开可访问的,而只能由您的账户访问(例如使用上一步中获取的密钥)。

  • 请参阅 AWS 文档

用于后端状态的 DynamoDB 表#

  • 此脚本使用 DynamoDB 表来防止并发访问正在启动的相同部署。

  • 创建一个 DynamoDB 表,用于管理对部署状态的访问。

  • 将分区键定义为 LockID,类型为 String。

  • 不需要定义排序键。

  • 请参阅 AWS 文档

基本域

  • Tokkio 应用程序需要域和 Route53 托管区域来支持 HTTPS

  • 创建一个域或使 Route53 成为现有域的 DNS 服务。

  • 请参阅 AWS 文档开发指南