Important
この機能は ベータ版です。 これを使用するには、ワークスペース管理者がワークスペースプレビューページからAIランタイムベータ機能とDatabricksアーティファクトレジストリのプレビューを有効にしなければなりません。
Databricks CLIは、Docker認証、イメージタグ付け、Artifact Registryへのプッシュを組み合わせるためのヘルパーコマンド databricks air images push を提供します。 レジストリ リージョンを自動的に検出します。 このヘルパーは、 アーティファクトレジストリガイドの手動ステップの代わりに使えます。 ヘルパーはイメージの作成やワークロードの提出を行いません。
Prerequisites
- Databricks CLIバージョン1.19.0以上をインストールしてください。 「Databricks CLI のインストールまたは更新」を参照してください。
- イメージを保存したいワークスペースでArtifact Registryを設定してください。 「 アーティファクトレジストリで始める」をご覧ください。
- 宛先カタログとスキーマを作成または選択し、 必要なアーティファクトレジストリの権限を取得します。
- ローカルマシンにDockerをインストールして起動してください。 ご利用の
PATHには Docker がインストールされている必要があります。
ワークスペース認証の設定
画像を保存したいワークスペース用のワークスペースOAuthプロファイルを作成または更新してください:
databricks auth login --profile my-databricks-profile
Dockerの認証ヘルパーはこのワークスペースのOAuthプロファイルを必要とします。 サポートされている認証方法については、 Docker 認証の設定を参照してください。
ローカル画像をプッシュする
例えば、my-training-image:v1 という名前のローカルイメージを main.ml.training:v1 にプッシュします:
databricks air images push \
--profile my-databricks-profile \
--source my-training-image:v1 \
--catalog main \
--schema ml \
--artifact training:v1
このコマンドは、ワークロード YAML で environment.unity_catalog_image として使用する Unity Catalog のイメージ名を表示します。 この例では、main.ml.training:v1 に示されているように、 を使用します。
ヘルパーは、ローカルのソース画像が存在する場合は、それを再利用します。 そうでない場合は、linux/amd64 のソース イメージをプルします。
--pull を追加すると、ソース イメージがローカルに存在する場合でも、レジストリからその画像を再読み込みします。 画像は linux/amd64を使用しなければなりません。 そのプラットフォーム用に、互換性のないローカルイメージを再構築してからプッシュしてください。 ソース イメージがプライベート レジストリにある場合は、ヘルパーを実行する前に、Docker をそのレジストリに対して認証してください。
画像の詳細をインタラクティブに入力するには、画像フラグなしで databricks air images push --profile my-databricks-profile 実行してください。 すべてのオプションを表示するには、databricks air images push --help を実行します。
別のレジストリからイメージをプッシュする
また、CLIヘルパーを使って、他のコンテナレジストリからアーティファクトレジストリに既存のイメージをコピーすることもできます。
以下の例では、プライベートなAmazon Elasticコンテナレジストリ(ECR)リポジトリをソースとして使用しています。 たとえば、ECR への認証を行い、ソース イメージを取得できる資格情報を使用して、AWS CLI をインストール、構成します。 これらのAWS認証情報は、Databricksのプロファイルとは別個のものです。
まず、Docker をソースとなる ECR レジストリに対して認証します。 たとえば挙げられている AWS アカウント ID、リージョン、リポジトリ、イメージ タグを、ご利用の値に置き換えてください。 AWSリージョンは、目的地のDatabricksワークスペースではなく、元のECRレジストリと一致していなければなりません。 AWSのドキュメントにある プライベートレジストリ認証 を参照してください。
aws ecr get-login-password --region us-west-2 | \
docker login --username AWS --password-stdin \
123456789012.dkr.ecr.us-west-2.amazonaws.com
その後、完全なECRイメージURIを以下の形で渡します --source:
databricks air images push \
--profile my-databricks-profile \
--source 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-training-image:v1 \
--catalog main \
--schema ml \
--artifact training:ecr-v1 \
--pull
--pullフラグは、linux/amd64イメージがすでにローカルにキャッシュされていても、ECRから取得します。 ヘルパーはローカルのDockerインストールを使ってイメージをプル、タグ付け、プッシュします。 ECR内のソースイメージは変更されていません。 プッシュが成功したら、ワークロード YAML 内で environment.unity_catalog_image を main.ml.training:ecr-v1 に設定してください。