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

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

Databricks シークレットの管理の詳細については、 シークレットの管理を参照してください。

次のステップ