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 |