Important
這項功能位於 測試版 (Beta) 中。 要使用此功能,工作區管理員必須從預覽頁面開啟 Databricks Artifact Registry。 請參閱 管理 Azure Databricks 預覽。 Databricks 將於 Artifact 登錄檔正式上市時公布價格。
使用 Artifact Registry 搭配 Docker 推送容器映像檔,並在 Unity Catalog 中對其進行治理。
本頁將教你如何設定驗證、授權存取、推送圖片,以及發現圖片。 關於概念與限制,請參見工件登錄。 若指令或操作失敗,請參閱故障排除工件登錄。
先決條件
開始前,請確保您已經具備以下條件:
- 位於支援 Artifact Registry 的區域中的工作區。 請參閱限制。
- Databricks CLI(命令列介面)版本 1.18.0 或更高安裝在您的本地機器上。
- Docker CLI 安裝在你本機上。
- 可從工作區存取的現有 Unity Catalog 目錄和結構描述。
- 執行此操作所需的 Unity Catalog 權限。
設定 Docker 認證
Databricks CLI 包含一個實驗性指令,可設定 Docker 以請求工作空間登錄檔的憑證。 Docker 憑證輔助程式需要由 databricks auth login 建立的工作區 OAuth 設定檔。 它不支援使用個人存取權杖、OAuth 機器對機器(M2M)憑證或僅使用帳戶驗證的設定檔。
建立或刷新目標工作區的個人檔案:
databricks auth login --profile <profile>為工作區登錄檔設定 Docker 認證:
databricks auth docker configure --profile <profile>省略
--profile <profile>以使用預設的 Databricks CLI 設定檔。Databricks CLI 會推斷登錄檔區域並列印工作區登錄檔主機名稱。 當您推送映像檔時,請使用這個主機名稱。
授予權限
Artifact Registry 並不建立目錄或結構。 兩者都必須已經存在於 Unity 目錄中,並且能從工作區存取。
Artifact Registry 利用 Unity 目錄的權限來控制影像存取。 下表顯示每次操作的最低權限授權。 更廣泛的管理權限也能授權部分作業。
| 作業 | 最小權限授與 |
|---|---|
| 推送新的構件 |
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>`;
關於 、 WRITE VOLUME、 READ METADATA和 READ VOLUME的詳細資訊CREATE VOLUME,請參閱 Unity 目錄權限參考。 關於其他授權方法,請參見 展示、授權與撤銷特權。
推送映像檔
使用工作區登錄檔主機名稱與映像 catalog.schema.artifact:tag 名稱。
取得登錄檔主機名稱
使用由 databricks auth docker configure 輸出的登錄檔主機名稱。 若要稍後找出設定檔的主機名稱,並檢查其 Docker 憑證輔助器是否已完成設定,請執行:
databricks auth docker host --profile <profile>
如果你需要手動建構主機名稱,請使用數字工作區 ID 和工作區區域。 要找到工作區 ID,請參閱 工作區實例名稱、網址和 ID。
要找到工作區區域,請在頂方導航欄開啟 工作區切換器 。 區域會顯示在工作區名稱下方。 你也可以在 帳號主控台 的 Workspaces 裡找到它。
請使用以下主機名稱:
<workspace-id>.container.<region>.azuredatabricks.net
工件名稱要求
Important
工件名稱必須為格式 `<catalog>.<schema>.<artifact>` 的完整限定 Unity Catalog 名稱。 名字中請勿使用斜線。 請參閱 Unity 目錄物件階層。
該 <artifact> 段落最多可包含 255 個字元。 請只使用小寫字母、數字、底線和連字號。 它必須以字母或數字開頭和結尾。 連續底線不得超過兩個,且請勿將底線放在連字號旁邊。
標記並推送圖片
警告
請勿在影像中包含憑證或其他敏感資料。 按下去之前先檢查圖片。 工件版本是不可變的,且不支援刪除請求。 如果你推送敏感資料,請立即輪換或撤銷,並請管理員限制適用於受影響產物的任何 READ VOLUME 授權。 停止使用受影響的摘要,以及所有會解析為該摘要的標籤,接著請參閱 請求協助時應提供的資訊。
為文物登錄處標註本地圖片:
docker tag <local-image>:<local-tag> \ <registry-hostname>/<catalog>.<schema>.<artifact>:<tag>推圖片:
docker push <registry-hostname>/<catalog>.<schema>.<artifact>:<tag>
探索圖片與版本
使用 Software Artifacts API 在目錄和架構中列出工件,然後列出工件的版本。
Note
無法提供專門用於列出和管理工件登錄映像的 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:
| Status | Meaning |
|---|---|
SUCCESS |
影像加速成功完成。 |
UNSPECIFIED |
目前尚未記錄到成功的影像加速結果。 此狀態並不代表失敗。 |