Databricks アプリにリソースを追加する
DatabricksDatabricksDatabricks SQLLakeFlowアプリは、データのクエリ 、データ取り込みと処理のためのMosaic AI Model Serving ジョブ、生成AI モデルへのアクセス 、機密情報を管理するための シークレットなど、さまざまなDatabricks プラットフォーム機能と統合できます。アプリのコンテキストでは、これらのプラットフォーム機能は リソース と呼ばれます。
アプリの移植性と安全性を確保するには、リソース ID をハードコーディングしないでください。たとえば、固定のSQL ウェアハウス IDapp.yaml
をSQL ファイルに埋め込む代わりに、Databricks Apps UI または で ウェアハウスをリソースとして構成します。databricks.yaml
アプリは最小限の特権で実行され、Databricks プラットフォーム内の既存のリソースに依存します。デプロイすると、アプリのサービスプリンシパルはこれらのリソースにアクセスし、 SQL クエリのテーブルレベルのアクセスやシークレットへの読み取りアクセスなど、必要なアクセス許可を持っている必要があります。 「Databricks アプリでの承認の構成」を参照してください。
アプリのリソースを構成する
リソースを使用すると、アプリは、機密性の高い値や環境固有の値をハードコーディングすることなく、依存するサービスに安全に接続できます。
- Databricks UI
- Databricks.yml
ほとんどのリソースは、アプリを作成または編集するときに 、アプリの UI に直接追加します。
[App リソース ] セクションで、[ + リソースの追加 ] をクリックし、使用するリソースの種類を選択します。各リソースにキーを割り当て、 app.yaml
ファイルで参照します。
databricks.yml
設定ファイルのresources
セクションにリソースを手動で追加します。この方法により、高度な構成の柔軟性が向上します。
resources:
sql_warehouses:
sql_warehouse: # resource key
name: my-warehouse
secrets:
secret: # resource key
scope: my-scope
key: my-key
その後、 valueFrom
フィールドを使用して、アプリ構成でこれらのリソースを参照できます。
環境変数を使用してリソースにアクセスする
アプリのリソースを定義したら、valueFrom
フィールドを使用して、app.yaml
ファイルの env
セクションでこれらのリソースを参照します。これにより、アプリ内の環境変数が resources
で定義されているリソースキーに接続されます。
スニペット app.yaml
例:
env:
- name: WAREHOUSE_ID
valueFrom: sql_warehouse
- name: SECRET_KEY
valueFrom: secret
次に、アプリのコードで、環境変数としてアクセスします。
import os
warehouse_id = os.getenv["WAREHOUSE_ID"]
secret_value = os.getenv["SECRET_KEY"]
Databricks シークレットの管理の詳細については、 シークレットの管理を参照してください。