Databricks アプリで環境変数を定義する

Azure Databricksは、アプリ ランタイム環境で特定の環境変数を自動的に設定します。 これらの変数は、アプリとワークスペースに関する重要な情報を提供し、既定ではすべての Databricks アプリからアクセスできます。 既定の変数の一覧については、「 Databricks Apps 環境」を参照してください。

アプリに追加の環境変数が必要な場合は、 セクションの env 構成ファイルで定義します。 各変数には、名前と値が必要です。 変数は、ハードコーディングされた値を使用することも、外部ソースを参照することもできます。

例えば次が挙げられます。

env:
  - name: LOG_LEVEL
    value: 'debug'

静的で機密性が低く、環境間で一貫性がある場合にのみ、値をハードコードします。 たとえば、機能の切り替えの value: "true" 、固定リージョンの value: "us-west" 、既定のタイムゾーンの value: "UTC" などがあります。

Von Bedeutung

アプリのセキュリティと移植性を維持するために、シークレット キーやその他の機密値をアプリ構成で直接参照しないでください。 たとえば、環境変数の value フィールドにシークレット値を埋め込んだり、ソース コードに直接埋め込んだりしないようにします。 代わりに、 valueFrom フィールドを使用して、リソース ブロックで定義されているシークレットやその他のマネージド リソースを安全に参照します。 これにより、実行時にシークレットがAzure Databricksから取得され、構成ファイル内のプレーンテキストで公開されることはありません。

環境変数を使用してリソースにアクセスする

SQL ウェアハウスやシークレットなどのアプリ リソースを定義する場合は、env フィールドを使用して、app.yaml ファイルの valueFrom セクションでこれらのリソースを参照します。 これにより、アプリの環境変数が、 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;

valueFrom 参照

次の表は、リソースの種類ごとに解決 valueFrom 値を示しています。

リソースの種類 解決された値
Databricks アプリ アプリ名 my-app
Genie スペース スペース ID 01ef1fa2b3c45678
Lakebase 自動スケール データベース エンドポイント パス projects/my-project/branches/main/endpoints/ep123
Lakebase プロビジョニング済みデータベース ホスト postgres-host.example.com
Lakeflow ジョブ 職務 ID 123456789
MLflow 実験 実験 ID 456789012
モデル提供エンドポイント エンドポイント名 my-serving-endpoint
シークレット 復号化されたシークレット値 (シークレット値)
SQL Warehouse 倉庫 ID a1b2c3d4e5f67890
Unity カタログ接続 接続名 my_connection
Unity カタログ テーブル テーブルの完全な名前 catalog.schema.table
Unity カタログ ボリューム ボリューム パス /Volumes/catalog/schema/volume
ユーザー定義関数 関数の完全な名前 catalog.schema.my_function
ベクター検索インデックス インデックスの完全名 catalog.schema.my_index

次のステップ