跳至正文

终端 > Warp Drive 概览

环境变量

在 ChatGPT 中打开 ↗
询问 ChatGPT 关于此页面的内容
在 Claude 中打开 ↗
询问 Claude 关于此页面的内容
已复制!

保存或同步环境变量以加载到您的终端会话中。

Warp Drive 中的环境变量让您可以单击即可保存、同步并将环境变量加载到您的终端会话中。支持静态值和来自 1Password、LastPass 和 Hashicorp Vault 等外部管理器的动态密钥,可确保凭据安全,避免出现在源代码中。

Warp 中的环境变量与 .env 文件类似,但您可以

  • 单击即可将其加载到您的终端会话中。
  • 在参数化工作流程中使用它们。
  • 动态引用来自外部管理器的密钥。

您可以通过以下方式创建新的环境变量

任何这些入口点都将打开环境变量编辑器,您可以在其中命名并描述您的环境变量。

Environment variable editor in Warp Drive showing fields for name and description.

Warp 支持两种类型的环境变量:静态变量和动态变量。

静态变量与 .env 文件类似。您可以通过输入原始文本字符串来创建变量。每个变量都有一个变量名称和相应的值。

Saving a static environment variable with name and value pairs.

保存环境变量后,您可以单击它以将其加载到终端会话中。

Loading a saved static environment variable into the current terminal session.

当您使用静态变量时,Warp 会将它们安全地存储在 Warp Drive 中。

注意:静态变量不应用于替代密钥管理器。对于任何敏感信息,请使用动态变量。

动态变量允许您引用存储在 Warp 外部(如 1Password 或 LastPass)安全密钥管理器中的密钥。

您可以使用自定义命令为任何具有公共 API 或 CLI 的系统(如 AWS 或 Hashicorp Vault)创建动态变量。

要创建新的动态变量

  1. 打开环境变量编辑器。
  2. 使用钥匙图标调出动态变量菜单。
  3. 选择集成的密码管理器或“命令”来编写您自己的自定义集成。

Opening the dynamic environment variable menu via the key icon in the editor.

在开始之前,请确保您已为您选择的工具安装了 CLI,并按照说明启用 CLI

然后,您可以单击钥匙图标并从下拉菜单中选择您的管理器。

Selecting an integrated password manager from the dynamic variable dropdown.

CLI 将要求您进行身份验证,然后为您提供可用密钥的列表。

Selecting a secret name from the password manager CLI's available list of secrets.

参考您的外部密钥管理器的文档。然后,编写一个自定义命令来检索密钥。

例如,您可以使用 Hashicorp Vault CLI 编写一个命令来检索并加载暂存服务器的密码字段。使用密钥命令时,Warp 会存储命令,但绝不会存储实际的密钥。密钥在运行时被引用并加载到终端会话中。

// vault kv get -field=password secret/staging/app/server/creds

Custom command using the Hashicorp Vault CLI to retrieve a password field at runtime.

有三种方法可以调用您的环境变量并将其加载到终端会话中

  1. 单击以加载到当前会话中
  2. 单击以加载到子 shell 中
  3. 选择以通过工作流程加载

首先,从 Warp Drive 或命令面板中单击您的环境变量。

然后,查看确认框。如果您的环境变量正确,请按回车键将其加载到您的会话中。

Confirmation block prompting to load environment variables into the current session.

Environment variables successfully loaded into the current terminal session.

这些环境变量现在将在您的会话剩余时间内保持有效。

要将环境变量加载到子 shell 中,您需要打开 Warp Drive 并在 Warp Drive 索引中找到您的环境变量。然后,您可以使用溢出菜单选择“在子 shell 中加载”。

将环境加载到子 shell 中可以降低环境变量意外污染您的工作区的风险。子 shell 定义明确,一旦您退出它,由 Warp 环境变量设置的任何环境变量都将被清除,除非它们已经存在于父会话中。

Selecting Load in subshell from an environment variable's overflow menu in Warp Drive.

Environment variables loaded into a subshell, isolated from the parent terminal session.

每次运行工作流程时,您都可以从现有的环境变量中进行选择。这允许您将环境变量动态注入到参数化工作流程中,从而可以在多个环境(例如生产环境和暂存环境)中使用单个工作流程命令。

例如,您可能有一个用于创建新团队的工作流程,该工作流程使用了环境变量 $SERVER_URL。通过使用工作流程卡片中的环境变量下拉菜单,您可以动态注入所需的变量。这确保了工作流程引用了正确的值,从而使命令能够使用相关的特定于环境的信息运行。

这些环境变量现在将在您的会话剩余时间内保持有效,直到您清除它们或用不同的环境覆盖它们。

Selecting environment variables from the dropdown when running a parameterized workflow.

请参阅我们的 Warp Drive 导入和导出 说明。