环境变量和先决条件设置#
注意
虽然本文档概述了某些云服务提供商 (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 文件夹中使用的每个环境变量的用途。
环境变量 |
定义 |
---|---|
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 文档开发指南。