在 Databricks 应用中定义环境变量

Azure Databricks 会在应用运行时环境中自动设置某些环境变量。 这些变量提供有关应用和工作区的基本信息,默认情况下可供所有 Databricks 应用访问。 有关默认变量的列表,请参阅 Databricks Apps 系统环境

如果您的应用需要其他环境变量,请在 app.yaml 配置文件的 env 部分中定义它们。 每个变量都需要一个名称和一个值。 变量可以使用硬编码值或引用外部源。

例如:

env:
  - name: LOG_LEVEL
    value: 'debug'

仅当它们跨环境静态、非敏感且一致时,才对值进行硬编码。 示例包括 value: "true" 功能切换、 value: "us-west" 固定区域或 value: "UTC" 默认时区。

重要

若要使应用安全且可移植,切勿直接在应用配置中引用密钥或其他敏感值。 例如,避免在环境变量的字段中嵌入机密值或直接在源代码中嵌入机密值 value 。 请改用该 valueFrom 字段来安全引用资源块中定义的机密和其他托管资源。 这可确保在运行时从 Azure Databricks 检索机密,并且永远不会在配置文件中以纯文本形式公开。

使用环境变量访问资源

如果您定义了应用资源(例如 SQL 仓库或机密),请在文件的env部分中,使用app.yaml字段引用这些资源。 这会将应用中的环境变量连接到在其中 resources定义的资源密钥。

示例 app.yaml 代码片段:

env:
  - name: WAREHOUSE_ID
    valueFrom: sql_warehouse

  - name: SECRET_KEY
    valueFrom: secret

然后,在应用代码中,以环境变量的形式访问它们:

Python

import os

warehouse_id = os.getenv("WAREHOUSE_ID")
secret_value = os.getenv("SECRET_KEY")

JavaScript

const warehouseId = process.env.WAREHOUSE_ID;
const secretValue = process.env.SECRET_KEY;

若要详细了解如何管理 Azure Databricks 机密,请参阅 “管理机密”。

后续步骤