メインコンテンツまでスキップ

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

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

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

例えば:

YAML
env:
- name: LOG_LEVEL
value: 'debug'

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

重要

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

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

SQLウェアハウスやシークレットなどの アプリ リソースを定義する場合は、 valueFromフィールドを使用して、app.yamlファイルのenvセクションでこれらのリソースを参照します。これにより、アプリ内の環境変数が resourcesで定義されているリソースキーに接続されます。

スニペット app.yaml 例:

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")

valueFrom参照

以下の表は、各リソースタイプに対してvalueFromが解決される値を示しています。

リソースタイプ

解決された値

Databricksアプリ

アプリ名

my-app

Genieスペース

スペースID

01ef1fa2b3c45678

Lakeflow Job

ジョブID

123456789

MLflowエクスペリメント

エクスペリメントID

456789012

モデルサービングエンドポイント

エンドポイント名

my-serving-endpoint

シークレット

復号化された秘密の値

(秘密の価値)

SQLウェアハウス

ウェアハウスID

a1b2c3d4e5f67890

Unity Catalog接続

接続名

my_connection

Unity Catalogテーブル

テーブルのフルネーム

catalog.schema.table

Unity Catalogボリューム

ボリュームパス

/Volumes/catalog/schema/volume

ユーザー定義関数

機能の正式名称

catalog.schema.my_function

ベクトル検索インデックス

索引名

catalog.schema.my_index

次のステップ