メインコンテンツまでスキップ

バンドル内のプライベートアーティファクトの使用

JFrog Artifactory などのサードパーティ ツールやプライベート リポジトリに保存されているファイルとアーティファクトは、宣言型オートメーション バンドルの一部である必要がある場合があります。 この記事では、これらのファイルの取り扱い方法について説明します。宣言型自動化バンドルに関する情報については、 「宣言型自動化バンドルとは?」を参照してください。

プライベート ホイールを使用するバンドルの例については、 bundle-examples GitHub リポジトリを参照してください。

ヒント

ノートブックを使用している場合は、ノートブックのプライベート リポジトリからPythonホイールをインストールし、バンドル内のジョブにnotebook_taskを追加できます。 ノートブックスコープの Python ライブラリを参照してください。

アーティファクトをローカルにダウンロードします

宣言型自動化バンドルを使用してプライベートアーティファクトを管理するには、まずそれをローカルにダウンロードする必要があります。その後、バンドル内でそれを参照して、バンドルの一部としてデプロイするか、 Unity Catalogにアップロードしてバンドル内で参照することができます。

たとえば、次のコマンドは、Python wheel ファイルを dist ディレクトリにダウンロードします。

Shell
pip download -d dist my-wheel==1.0

また、プライベートな PyPI パッケージをダウンロードして、それを dist ディレクトリにコピーすることもできます。

Bash
export PYPI_TOKEN=<YOUR TOKEN>
pip download -d dist my-package==1.0.0 --index-url https://$PYPI_TOKEN@<package-index-url> --no-deps

(オプション)アーティファクトをUnity Catalogにアップロードする

アーティファクトをダウンロードしたら、オプションで を使用してダウンロードしたアーティファクトをUnity Catalog DatabricksCLIボリュームにコピーできるため、バンドルのデプロイ時にワークスペースにアップロードするのではなく、バンドルから参照できます。次の例では、ホイールを Unity Catalog ボリュームにコピーします。

Bash
databricks fs cp my-wheel-1.0-*.whl dbfs:/Volumes/myorg_test/myorg_volumes/packages
ヒント

Declarative Automation Bundles は、バンドル構成で Unity Catalog ボリュームパスにartifact_path設定すると、バンドル内で参照されているすべてのアーティファクトを自動的に Unity Catalog にアップロードします。

アーティファクトを参照する

アーティファクトをバンドルに含めるには、設定でアーティファクトを参照します。

次のバンドルの例は、ジョブの wheel ディレクトリ内の dist ファイルを参照します。 この構成では、バンドルがデプロイされるときにホイールがワークスペースにアップロードされます。

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: python-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_D4s_v5
num_workers: 1
spark_python_task:
python_file: ../src/main.py
libraries:
- whl: ../dist/my-wheel-1.0-*.whl

アーティファクトを Unity Catalog ボリュームにアップロードした場合は、その場所で参照するようにジョブを設定します。

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: python-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_D4s_v5
num_workers: 1
spark_python_task:
python_file: ../src/main.py
libraries:
- whl: /Volumes/myorg_test/myorg_volumes/packages/my-wheel-1.0-py3-none-any.whl

Python wheelの場合は、ジョブのpython_wheel_taskで参照することもできます。

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: wheel_task
python_wheel_task:
package_name: my_package
entry_point: entry
job_cluster_key: Job_cluster
libraries:
- whl: ../dist/my-wheel-1.0-*.whl