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

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

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

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

例えば:

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

このような値のハードコーディングは、値が静的で、感度が低く、環境間で一貫している場合に安全です。その他の安全な例としては、機能の切り替えの value: "true" 、固定リージョンの value: "us-west" 、デフォルトのタイムゾーンの value: "UTC" などがあります。

important

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

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

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