Artifact Registryから始めましょう

Important

この機能は ベータ版です。 これを使うには、ワークスペース管理者がPreviewsページからDatabricksのArtifact Registryを有効にする必要があります。 Manage Azure Databricks プレビューを参照してください。 DatabricksはArtifact Registryが一般に利用可能になった際に価格を発表します。

Artifact Registryを使ってDockerでコンテナイメージをプッシュし、Unity Catalogで管理してください。

このページでは、認証の設定方法、アクセス許可、画像のプッシュ、そして発見方法を紹介します。 概念や制限については 、アーティファクトレジストリを参照してください。 コマンドや操作が失敗した場合は、 Troubleshoot Artifact Registryを参照してください。

Requirements

開始する前に、以下が必要になります。

  • アーティファクトレジストリをサポートするリージョン内のワークスペース。 制限事項を参照してください。
  • DatabricksのCLI(コマンドラインインターフェース)バージョン1.18.0以上がローカルマシンにインストールされています。
  • DockerのCLIはローカルマシンにインストールされています。
  • ワークスペースからアクセス可能な既存のUnity Catalogカタログとスキーマ。
  • この操作に必要なUnity Catalogの権限

Docker認証の設定

Databricks CLIには、Dockerがワークスペースレジストリの認証情報を要求するように設定する実験的なコマンドが含まれています。 Dockerの認証ヘルパーは、 databricks auth loginによって作成されたワークスペースのOAuthプロファイルが必要です。 個人アクセストークン、OAuthマシン間認証(M2M)、アカウントのみ認証を利用するプロファイルはサポートしていません。

  1. ターゲットワークスペースのプロファイルを作成または更新する:

    databricks auth login --profile <profile>
    
  2. ワークスペースレジストリのDocker認証を設定する:

    databricks auth docker configure --profile <profile>
    

    --profile <profile> を省略すると、デフォルトの Databricks CLI プロファイルが使用されます。

    Databricks CLIはレジストリ領域を推論し、ワークスペースレジストリのホスト名を印刷します。 画像をプッシュするときはこのホスト名を使ってください。

許可の付与

アーティファクトレジストリはカタログやスキーマを作成するものではありません。 どちらもUnity Catalogに既に存在し、ワークスペースからアクセス可能でなければなりません。

Artifact RegistryはUnity Catalogの権限を使って画像アクセスを制御します。 以下の表は各操作の最小権限付与を示しています。 より広範な管理権限は、一部の業務を許可することもあります。

操作 最小権限の付与
新しいアーティファクトをプッシュ USE CATALOG、 USE SCHEMA、および CREATE VOLUME
新しいバージョンをプッシュしたり、タグを移動したりする USE CATALOG、 USE SCHEMA、および WRITE VOLUME
アーティファクトとバージョンの検出 USE CATALOG、 USE SCHEMA、および READ METADATA
サポートされているワークロードでイメージを使う USE CATALOG、 USE SCHEMA、および READ VOLUME

アーティファクトレジストリ専用のスキーマの場合、管理者はスキーマレベルで権限を付与できます。 スキーマレベルの特権は、後から作成されたオブジェクトを含むスキーマ内のすべての一致するオブジェクトに適用されます。 お互いのアーティファクトを改ざんできないはずのパブリッシャーごとに別々のスキーマを使うべきです。 各プリンシパルには、その運営に必要な特権のみを付与します。 以下の文を実行する前に、例の値を置き換え、不要な特権文を削除してください。

GRANT USE CATALOG ON CATALOG <catalog> TO `<principal>`;
GRANT USE SCHEMA ON SCHEMA <catalog>.<schema> TO `<principal>`;
GRANT CREATE VOLUME ON SCHEMA <catalog>.<schema> TO `<principal>`;
GRANT WRITE VOLUME ON SCHEMA <catalog>.<schema> TO `<principal>`;
GRANT READ METADATA ON SCHEMA <catalog>.<schema> TO `<principal>`;
GRANT READ VOLUME ON SCHEMA <catalog>.<schema> TO `<principal>`;

CREATE VOLUME、WRITE VOLUME、READ METADATA、READ VOLUMEの詳細については、Unityカタログ特権の参照を参照してください。 その他の助成方法については、「 特権の表示、付与、取り消し」を参照してください。

画像を押す

ワークスペースレジストリのホスト名にイメージの catalog.schema.artifact:tag 名を付けて使います。

レジストリのホスト名を取得します

databricks auth docker configureが印刷したレジストリのホスト名を使ってください。 後でプロファイルのホスト名を調べ、Dockerの認証ヘルパーが設定されているか確認するには、以下を実行します:

databricks auth docker host --profile <profile>

ホスト名を手動で作成する必要がある場合は、数値のワークスペースIDとワークスペースリージョンを使いましょう。 ワークスペースIDを見つけるには、 ワークスペースインスタンス名、URL、IDをご覧ください。

ワークスペース領域を見つけるには、上部ナビゲーションバーの ワークスペーススイッチャー を開きます。 リージョンはワークスペース名の下に表示されます。 アカウント コンソール の [ワークスペース] で見つけることもできます。

以下のホストネームを使用してください:

<workspace-id>.container.<region>.azuredatabricks.net

アーティファクト名の要件

Important

アーティファクト名は、 <catalog>.<schema>.<artifact>形式の完全な限定されたUnityカタログ名でなければなりません。 名前内にスラッシュは使わないでください。 詳細は Unityカタログのオブジェクト階層を参照してください。

<artifact>セグメントは最大255文字まで含めることができます。 小文字、数字、アンダー、ハイフンのみを使用してください。 文字か数字で始まり、終わります。 連続したアンダースコアは最大2つまで使用し、ハイフンの隣にアンダースコアを付けないでください。

タグ付けして画像を押し出す

Warning

画像に認証情報やその他の機密データを含まないでください。 押す前に画像を確認してください。 アーティファクトバージョンは不変であり、削除リクエストはサポートされていません。 機密データをプッシュする場合は、すぐにローテーションまたは取り消し、管理者に影響を受けたアーティファクトに適用される READ VOLUME 付与の制限を依頼してください。 影響を受けたダイジェストとそれに解決するすべてのタグの使用をやめ、 助けを求める際に含める情報を確認してください。

  1. アーティファクトレジストリ用のローカル画像にタグ付けしてください:

    docker tag <local-image>:<local-tag> \
      <registry-hostname>/<catalog>.<schema>.<artifact>:<tag>
    
  2. 画像を押す:

    docker push <registry-hostname>/<catalog>.<schema>.<artifact>:<tag>
    

画像とバージョンの発見

Software Artifacts APIを使ってカタログやスキーマにアーティファクトをリストし、アーティファクトのバージョンを一覧にしてください。

Note

Artifactレジストリイメージの一覧化や管理用の専用DatabricksのCLIコマンドは利用できません。 databricks apiを使ってソフトウェアアーティファクトAPIを呼び出してください。

以下の例は、Docker認証用に設定したプロファイルを使用しています。 もしそれがデフォルトのDatabricksのCLIプロファイルなら --profile <profile> 省略してください。

成果物一覧

アーティファクトをリストアップするには、以下のコマンドを実行します:

databricks api get --profile <profile> \
  "/api/2.1/unity-catalog/software-artifacts?parent=schemas/<catalog>.<schema>"

回答には遺物の名前と所有者が含まれます。 応答に next_page_tokenが含まれている場合は、 page_token クエリパラメータにその値を渡して次のページ、例えば &page_token=<next_page_token>を取得します。

バージョンを一覧表示する

アーティファクトのバージョンを一覧表示するには、以下のコマンドを実行します:

databricks api get --profile <profile> \
  "/api/2.1/unity-catalog/software-artifacts/<catalog>.<schema>.<artifact>/versions"

回答には各バージョンの画像ダイジェスト、タグ、 image_acceleration_details.status が含まれています。 応答制限については 「制限」を参照してください。

画像の加速状況を確認してください

アーティファクト版の回答から image_acceleration_details.status を読んでください:

地位 Meaning
SUCCESS 画像加速が成功裏に完了しました。
UNSPECIFIED 画像加速の成功した結果は記録されていません。 この状態は失敗を示すものではありません。

サポートされているAzure Databricksワークロードでイメージを使う

イメージを Artifact Registry にプッシュした後、サポート対象の Azure Databricks ワークロードを作成するときにそれを参照してください。

AIランタイムのワークロードで画像を使用するには、「 AI RuntimeでカスタムDocker画像を使用する」をご覧ください。

その他のリソース