defaultパッケージリポジトリを構成する
プレビュー
Serverlessノートブックとジョブ向けのdefault Pythonパッケージリポジトリの設定は、一般提供されています。LakeFlow Pipelines、およびUIとAPI経由で作成されたクラシックコンピュートについては、パブリックプレビュー段階です。Databricks Appsについては、ベータ版です。ワークスペース管理者は、次のプレビューを有効にすることで、プレビューページからこれらの機能へのアクセスを制御できます。
- Spark宣言型パイプラインのdefault Pythonパッケージリポジトリ (パブリックプレビュー)
- API経由で作成されたクラスターのdefault Pythonパッケージリポジトリ (パブリックプレビュー)
- UI を介して作成されたクラスターのdefault Python パッケージリポジトリ (パブリックプレビュー)
- Databricks Apps のワークスペースリポジトリ構成を有効にする (ベータ版)
ワークスペース管理者は、ワークスペース内のプライベートまたは認証済みのパッケージリポジトリを、ノートブック、ジョブ、LakeFlow Pipelines、およびDatabricks Appsのdefaultパッケージリポジトリとして構成できます。Pythonリポジトリはこれらすべてのワークロードに適用されますが、npmレジストリはDatabricks Appsにのみ適用されます。
ワークスペースがdefaultのパッケージリポジトリで構成されている場合、ワークスペース内のユーザーは、Pythonのindex-urlまたはextra-index-urlの値を明示的に定義することなく、またはnpmのレジストリを定義することなく、内部リポジトリからパッケージをインストールできます。これらの値がコード、ノートブック、またはアプリのapp.yamlファイルで指定されている場合、それらはワークスペースのdefaultよりも優先されます。Databricks Appsで優先順位がどのように機能するかについては、ワークスペースレベルのdefaultパッケージリポジトリを使用するを参照してください。
この構成では、Databricks のシークレットを活用して、リポジトリの URL と認証情報を安全に保存および管理します。ワークスペース管理者は、ワークスペース管理設定ページを使用するか、事前定義された Secret Scope と Databricks CLI シークレットコマンド、または REST API を使用して設定を構成できます。
ワークスペースのdefault依存関係を設定する
ワークスペース管理者は、ワークスペース管理者設定ページを使用して、defaultパッケージリポジトリを追加または削除できます。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- 「 コンピュート 」tabをクリックします。
- デフォルト・パッケージ・リポジトリ の横にある 管理 をクリックします。
- (オプション)PythonインデックスURL、追加インデックスURL、カスタムSSL証明書、またはnpmレジストリ設定を追加または削除します。
- 保存 をクリックして、変更を保存します。
シークレットへの変更または削除は、ワークロードタイプによって異なる方法で適用されます。Serverlessノートブックおよびジョブの場合、変更は、コンピュートリソースをノートブックに再アタッチするか、ジョブを再実行した後に適用されます。クラシックノートブックおよびジョブの場合、変更はコンピュートリソースが再起動された後に適用されます。LakeFlow Pipelinesの場合、変更は新しいパイプラインのランに適用されます。Databricks Appsの場合、変更は次回アプリが構築およびデプロイされたときに適用されます。
Secrets CLIまたはREST APIを使用して設定
CLI または REST API を使用して default パッケージリポジトリを設定するには、事前定義されたシークレットスコープを作成し、アクセス許可を設定してから、パッケージリポジトリシークレットを追加します。
定義済みのシークレットスコープ名
ワークスペース管理者は、認証トークンとシークレットとともに、default pipインデックスURL、追加のインデックスURL、SSL証明書、npm設定を、所定のキーの下にある指定されたSecret Scopeに設定できます:
- シークレットスコープ 名:
databricks-package-management - index-urlのシークレットキー:
pip-index-url - extra-index-urlsのシークレットキー:
pip-extra-index-urls - SSL certification contentのシークレットキー:
pip-cert - npm設定用シークレットキー:
npm-rc(Databricks Appsのみ)
Secret Scopeを作成する
Secret Scopeは、Databricks CLIのシークレットコマンドまたはREST APIを使用して作成できます。Secret Scopeを作成した後、すべてのワークスペースユーザーに読み取りアクセス権を付与するようにアクセス制御リストを構成します。これにより、リポジトリは安全に保たれ、個々のユーザーによって変更されることはありません。Secret Scopeは、事前定義されたSecret Scope名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 Pipelines、およびDatabricks Appsに適用されますが、npmレジストリはDatabricks Appsにのみ適用されます。
- Python
- Node.js
事前定義されたシークレットキー名を使用して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>"}'
リポジトリで認証が必要な場合は、インデックス URL に次のいずれかの形式を使用してください。
- ユーザー名とパスワード:
https://<username>:<password>@<index_url> - トークン:
https://<token>@<index_url>
Databricks Appsでは、default npmレジストリを構成して、アプリがNode.jsパッケージ (プライベートパッケージを含む) をワークスペースで構成されたレジストリからインストールできるようにすることもできます。.npmrc ファイルコンテンツ全体 (レジストリURLおよびすべての認証トークンを含む) を、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"}'
ワークスペースでアプリがビルドされると、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