Databricks アプリで環境変数を定義する
Databricks は、アプリのランタイム環境に特定の環境変数を自動的に設定します。これらの変数は、アプリとワークスペースに関する重要な情報を提供し、デフォルトによってすべての Databricks アプリからアクセスできます。 デフォルト変数の一覧については、「 Databricks Apps システム環境」を参照してください。
アプリで追加の環境変数が必要な場合は、 app.yaml 設定ファイルの env
セクションで定義します。各変数には名前と値が必要です。変数は、ハードコードされた値を使用するか、外部ソースを参照できます。
例えば:
env:
- name: LOG_LEVEL
value: 'debug'
このような値のハードコーディングは、値が静的で、感度が低く、環境間で一貫している場合に安全です。その他の安全な例としては、機能の切り替えの value: "true"
、固定リージョンの value: "us-west"
、デフォルトのタイムゾーンの value: "UTC"
などがあります。
アプリの安全性と移植性を維持するには、 アプリ構成でシークレットキーやその他の機密性の高い値を直接参照しないでください 。たとえば、シークレット値を環境変数の value
フィールドに埋め込んだり、ソース コードに直接埋め込んだりすることは避けてください。代わりに、 valueFrom
フィールドを使用して、リソース ブロックで定義されているシークレットやその他のマネージド リソースを安全に参照します。これにより、シークレットは実行時に Databricks から取得され、設定ファイルでプレーンテキストで公開されることはありません。
環境変数を使用してリソースにアクセスする
ウェアハウスやシークレットなどの アプリ リソースを定義する SQLenv``app.yaml``valueFrom
場合は、 フィールドを使用して、 ファイルの セクションでこれらのリソースを参照します。これにより、アプリ内の環境変数が resources
で定義されているリソースキーに接続されます。
スニペット app.yaml
例:
env:
- name: WAREHOUSE_ID
valueFrom: sql_warehouse
- name: SECRET_KEY
valueFrom: secret
次に、アプリのコードで、環境変数としてアクセスします。
- Python
- JavaScript
import os
warehouse_id = os.getenv("WAREHOUSE_ID")
secret_value = os.getenv("SECRET_KEY")
const warehouseId = process.env.WAREHOUSE_ID;
const secretValue = process.env.SECRET_KEY;
Databricks シークレットの管理の詳細については、 シークレットの管理を参照してください。