环境变量和上下文
Deno DeployEA 中的环境变量允许您使用静态值(例如 API 密钥或数据库连接字符串)配置应用程序。
环境变量类型 Jump to heading
环境变量可以存储为
- 纯文本:在 UI 中可见,适用于非敏感值,例如功能标志
- 密钥:创建后在 UI 中不可见,只能从应用程序代码中读取,适用于敏感值,例如 API 密钥
变量可以在以下级别设置:
- 应用程序级别:特定于单个应用程序
- 组织级别:应用于组织中的所有应用程序,但可以被应用程序级别的变量覆盖
上下文 Jump to heading
每个环境变量适用于一个或多个上下文。上下文表示代码运行的逻辑“环境”,每个环境都有自己的一组变量和密钥。
默认情况下,存在两个上下文:
- 生产环境:用于服务生产流量的生产时间线
- 开发环境:用于服务非生产流量(预览 URL 和分支 URL)的开发时间线
此外,还有一个在构建过程中使用的构建上下文。构建上下文中的环境变量仅在构建期间可用,在生产或开发上下文中不可访问(反之亦然)。这种分离使得构建时和运行时可以采用不同的配置。
在单个应用程序或组织内,您不能在同一上下文中拥有多个同名环境变量。但是,您可以在不同的非重叠上下文中拥有同名变量。
添加、编辑和删除环境变量 Jump to heading
您可以在以下几个位置管理环境变量:
- 在创建应用程序时的“新建应用程序”页面上
- 在应用程序设置的“环境变量”部分
- 在组织设置的“环境变量”部分
在每个位置,单击相应的编辑按钮以打开环境变量抽屉。更改仅在您点击“保存”时生效。点击“取消”将丢弃您的更改。
要添加变量:
- 单击“添加环境变量”
- 输入名称和值
- 指定它是否为密钥
- 选择它应该应用的上下文
您还可以从 .env
文件批量导入变量
- 点击“+ 从 .env 文件添加”
- 粘贴您的
.env
文件内容 - 点击“导入变量”
请注意,以 #
开头的行将被视为注释。
要删除变量,请点击其旁边的“删除”按钮。
要编辑变量,请点击其旁边的“编辑”按钮以修改其名称、值、密钥状态或适用的上下文。
在代码中使用环境变量 Jump to heading
使用 Deno.env.get
API 访问环境变量
const myEnvVar = Deno.env.get("MY_ENV_VAR");
预定义环境变量 Jump to heading
Deno DeployEA 在所有上下文中提供以下预定义环境变量:
-
DENO_DEPLOYMENT_ID
:表示整个配置集(应用程序 ID、修订 ID、上下文和环境变量)的唯一标识符。如果其中任何组件发生更改,此值也会更改。 -
DENO_REVISION_ID
:当前运行的修订版本的 ID。
未来将添加更多预定义变量。
请注意,您不能手动设置任何以 DENO_*
开头的环境变量,因为它们是保留的系统变量。
const myEnvVar = Deno.env.get("MY_ENV_VAR");
预定义环境变量 Jump to heading
Deno DeployEA 提供了一组预定义环境变量,这些变量会自动为每个应用程序设置。这些环境变量在所有上下文中都可用,可用于访问有关应用程序及其运行环境的信息。
-
DENO_DEPLOYMENT_ID
- 一个唯一标识符,表示应用程序运行的整个配置集。这包括应用程序 ID、修订 ID、上下文以及任何适用的环境变量。如果上述任何项发生更改,此值也会更改。 -
DENO_REVISION_ID
- 当前运行的修订版本 ID。
未来将添加更多预定义环境变量。
无法手动设置任何以 DENO_*
开头的环境变量。这些环境变量由 Deno DeployEA 设置,并且是只读的。