既定のパッケージ リポジトリを構成する

Important

既定のPython パッケージ リポジトリの構成は、サーバーレス ノートブックとジョブで一般提供されています。 Lakeflow パイプラインと、UI と API を使用して作成されたクラシック コンピューティングの場合は、 パブリック プレビュー段階です。 Databricks Apps の場合、 ベータ版です。 ワークスペース管理者は、次のプレビューを有効にすることで、[ プレビュー ] ページからこれらの機能へのアクセスを制御できます。

  • Spark 宣言パイプラインの既定のPython パッケージ リポジトリ (パブリック プレビュー)
  • API を使用して作成されたクラスター内の既定のPython パッケージ リポジトリ (パブリック プレビュー)
  • UI を使用して作成されたクラスター内の既定のPython パッケージ リポジトリ (パブリック プレビュー)
  • Databricks Apps のワークスペース リポジトリ構成を有効にする (ベータ)

ワークスペース管理者は、ワークスペース内のプライベートまたは認証済みのパッケージ リポジトリを、ノートブック、ジョブ、Lakeflow パイプライン、および Databricks Apps の既定のパッケージ リポジトリとして構成できます。 Pythonリポジトリはこれらすべてのワークロードに適用されますが、npm レジストリは Databricks Apps にのみ適用されます。

ワークスペースが既定のパッケージ リポジトリで構成されている場合、ワークスペース内のユーザーは、Pythonのindex-url値やextra-index-url値、または npm のレジストリを明示的に定義することなく、内部リポジトリからパッケージをインストールできます。 これらの値がコード、ノートブック、またはアプリの app.yaml ファイルで指定されている場合は、ワークスペースの既定値よりも優先されます。 Databricks Apps の優先順位のしくみについては、「 ワークスペース レベルの既定のパッケージ リポジトリを使用 する」を参照してください。

この構成では、リポジトリの URL と資格情報を安全に格納および管理するために、Databricks シークレットを利用します。 ワークスペース管理者は、ワークスペース管理者設定ページを使用するか、定義済みのシークレット スコープと Databricks CLI シークレット コマンド または REST API を使用して、セットアップを構成できます。

ワークスペースの既定の依存関係を設定する

ワークスペース管理者は、ワークスペース管理者設定ページを使用して、既定のパッケージ リポジトリを追加または削除できます。

  1. ワークスペース管理者として、Databricks ワークスペースにログインします。
  2. Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] 選択します。
  3. [コンピュート] タブ をクリックします。
  4. 既定のパッケージ リポジトリ」の横にある「管理」をクリックします。
  5. (省略可能)Pythonインデックス URL、追加のインデックス URL、カスタム SSL 証明書、または npm レジストリ構成を追加または削除します。
  6. [保存] をクリックして変更を保存します。

Note

シークレットへの変更または削除は、ワークロードの種類によって異なる方法で適用されます。 サーバーレス ノートブックとジョブの場合、コンピューティング リソースをノートブックに再アタッチするか、ジョブを再実行した後に変更が適用されます。 従来のノートブックとジョブの場合、コンピューティング リソースの再起動後に変更が適用されます。 Lakeflow パイプラインの場合、変更は新しいパイプラインの実行に適用されます。 Databricks Apps の場合、次回アプリがビルドおよびデプロイされるときに変更が適用されます。

シークレット CLI または REST API を使用して設定する

CLI または REST API を使用して既定のパッケージ リポジトリを構成するには、定義済みのシークレット スコープを作成し、アクセス許可を構成してから、パッケージ リポジトリ シークレットを追加します。

定義済みのシークレット スコープ名

ワークスペース管理者は、定義済みのキーの下の指定されたシークレット スコープで、既定の pip インデックス URL、追加のインデックス URL、SSL 証明書、npm 構成、認証トークンとシークレットを設定できます。

  • シークレット スコープ名: databricks-package-management
  • index-url のシークレット キー: pip-index-url
  • extra-index-urls のシークレット キー: pip-extra-index-urls
  • SSL 認定コンテンツのシークレット キー: pip-cert
  • npm 構成の秘密鍵: npm-rc (Databricks Apps のみ)

シークレット スコープを作成する

シークレット スコープは、Databricks CLI シークレット コマンドまたは REST API を使用して作成できます。 シークレット スコープを作成したら、すべてのワークスペース ユーザーに読み取りアクセス権を付与するようにアクセス制御リストを構成します。 これにより、リポジトリがセキュリティで引き続き保護されるとともに、個々のユーザーによる変更ができなくなります。 シークレット スコープでは、定義済みのシークレット スコープ名 databricks-package-management使用する必要があります。

databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ

パッケージ リポジトリ シークレットを追加する

定義済みのシークレット キー名を使用して、パッケージ リポジトリの詳細を追加します。 Pythonリポジトリはノートブック、ジョブ、Lakeflow パイプライン、Databricks Apps に適用されますが、npm レジストリは Databricks Apps にのみ適用されます。

Python

定義済みの秘密鍵名を使用して Python パッケージ リポジトリの詳細を追加します。3 つのフィールドはすべて省略可能です。

# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'

# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'

# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'

Note

リポジトリで認証が必要な場合は、インデックス URL に次のいずれかの形式を使用します。

  • ユーザー名とパスワード: https://<username>:<password>@<index_url>
  • トークン: https://<token>@<index_url>

Node.js

Databricks Apps の場合は、既定の npm レジストリを構成して、アプリがワークスペースで構成されたレジストリからプライベート パッケージを含む Node.js パッケージをインストールするようにすることもできます。 レジストリ URL と認証トークンを含む、完全な .npmrc ファイルコンテンツを npm-rc 秘密鍵の下に格納します。

databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "npm-rc", "string_value":"registry=https://npm.example.com/\n//npm.example.com/:_authToken=<token>\n"}'

ワークスペース内のアプリがビルドされると、Azure Databricksはアプリの.npmrc ファイルにこのコンテンツを書き込みます。 優先順位のしくみと、特定のアプリに対してオーバーライドする方法については、 Node.js パッケージに関するページを参照してください。

パッケージ リポジトリ シークレットを変更または削除する

パッケージ リポジトリ シークレットを変更するには、 put-secret コマンドを使用します。 パッケージ リポジトリ シークレットを削除するには、次に示すように delete-secret を使用します。

# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url

databricks secrets delete-secret databricks-package-management pip-extra-index-urls

databricks secrets delete-secret databricks-package-management pip-cert

# delete the npm configuration secret (Databricks Apps only)
databricks secrets delete-secret databricks-package-management npm-rc

# delete scope
databricks secrets delete-scope databricks-package-management