ワークスペース管理者は、サーバーレス ノートブック、サーバーレス ジョブ、クラシック コンピューティングの既定の pip 構成として、ワークスペース内のプライベートまたは認証済みのパッケージ リポジトリを構成できます。
ワークスペースが既定の Python パッケージ リポジトリで構成されている場合、ワークスペース内のユーザーは、 index-url または extra-index-url 値を明示的に定義することなく、内部 Python リポジトリからパッケージをインストールできます。 ただし、これらの値がコード内またはノートブック内に指定されている場合は、ワークスペースの既定値よりも優先されます。
この構成では、リポジトリの URL と資格情報を安全に格納および管理するために、Databricks シークレットを利用します。 ワークスペース管理者は、ワークスペース管理者設定ページを使用するか、定義済みのシークレット スコープと Databricks CLI シークレット コマンド または REST API を使用して、セットアップを構成できます。
ワークスペースの既定の依存関係を設定する
ワークスペース管理者は、ワークスペース管理者設定ページを使用して、既定の Python パッケージ リポジトリを追加または削除できます。
- ワークスペース管理者として、Databricks ワークスペースにログインします。
- Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] 選択します。
- [コンピュート] タブ をクリックします。
- 「既定のパッケージ リポジトリ」の横にある「管理」をクリックします。
- (省略可能)インデックス URL、追加のインデックス URL、またはカスタム SSL 証明書を追加または削除します。
- [保存] をクリックして変更を保存します。
注
シークレットに対する変更または削除は、コンピューティング リソースをノートブックに再アタッチするか、ジョブを再実行した後に適用されます。
シークレット CLI または REST API を使用したセットアップ
CLI または REST API を使用して既定の Python パッケージ リポジトリを構成するには、定義済みのシークレット スコープを作成し、アクセス許可を構成してから、パッケージ リポジトリ シークレットを追加します。
定義済みのシークレット スコープ名
ワークスペース管理者は、定義済みキーの下で指定したシークレット スコープ内にある認証トークンとシークレットと併せて、既定の pip インデックス URL または追加のインデックス URL を設定できます。
- シークレット スコープ名:
databricks-package-management - index-url のシークレット キー:
pip-index-url - extra-index-urls のシークレット キー:
pip-extra-index-urls - SSL 認定コンテンツのシークレット キー:
pip-cert
シークレット スコープを作成する
シークレット スコープは、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 パッケージ リポジトリ シークレットを追加する
定義済みの秘密鍵名を使用して 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>"}'
注
リポジトリにユーザー名とパスワードが必要な場合は、index-url に次の形式を使用します。 https://<username>:<password>@<index_url>
プライベート PyPI リポジトリ シークレットを変更または削除する
PyPI リポジトリ シークレットを変更するには、 put-secret コマンドを使用します。 PyPI リポジトリ シークレットを削除するには、次に示すように 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 scope
databricks secrets delete-scope databricks-package-management