Share via


快速入門:使用 Azure CLI 建立已連線登錄

在本快速入門中,您會使用 Azure CLI 在 Azure 中建立已連線登錄資源。 Azure Container Registry 的已連線登錄功能可讓您從遠端或在內部部署環境部署登錄,並使用雲端登錄同步處理映像和其他成品。

您會在這裡為雲端登錄建立兩個已連線的登錄資源:一個已連線的登錄允許讀取和寫入 (成品提取和推送) 功能,另一個允許唯讀功能。

建立已連線的登錄之後,您可以遵循其他指南,在內部部署或遠端基礎結構上部署及使用。

必要條件

  • Azure Container Registry - 如果您還沒有容器登錄,請在支援已連線登錄的區域建立容器登錄 (需要進階層)。

啟用雲端登錄的專用資料端點

使用 az acr update 命令,在雲端中啟用 Azure 容器登錄的專用資料端點。 已連線的登錄需要此步驟,才能與雲端登錄通訊。

# Set the REGISTRY_NAME environment variable to identify the existing cloud registry
REGISTRY_NAME=<container-registry-name>

az acr update --name $REGISTRY_NAME \
  --data-endpoint-enabled

將映像匯入至雲端登錄

使用 az acr import 命令,將下列容器映像匯入至您的雲端登錄。 如果您已匯入這些映像,請略過此步驟。

連線的登錄映像

若要支援巢狀 IoT Edge 案例,連線登錄執行階段的容器映像必須可在您的私人 Azure 容器登錄中使用。 使用 az acr import 命令,將連線的登錄映像匯入您的私人登錄中。

# Use the REGISTRY_NAME variable in the following Azure CLI commands to identify the registry
REGISTRY_NAME=<container-registry-name>

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/acr/connected-registry:0.8.0

IoT Edge 和 API Proxy 映像

若要在巢狀 IoT Edge 上支援連線的登錄,您必須為 IoT Edge 和 API Proxy 部署模組。 將這些映像匯入您的私人登錄中。

IoT Edge API Proxy 模組可讓 IoT Edge 裝置使用 HTTPS 通訊協定在相同的連接埠 (例如 443) 上公開多個服務。

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-agent:1.2.4

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-hub:1.2.4

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-api-proxy:1.1.2

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-diagnostics:1.2.4

hello-world 映像

若要測試連線的登錄,請匯入 hello-world 映像。 此存放庫將會同步處理至連線的登錄,並由連線的登錄用戶端提取。

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/hello-world:1.1.2

建立已連線的登錄資源以獲得讀取和寫入功能

使用 az acr connected-registry create 命令建立已連線的登錄。 已連線的登錄名稱必須以字母開頭,並且只能包含英數字元。 在這個 Azure 容器登錄的階層中,名稱長度必須為 5 到 40 個字元且是唯一的。

# Set the CONNECTED_REGISTRY_RW environment variable to provide a name for the connected registry with read/write functionality
CONNECTED_REGISTRY_RW=<connnected-registry-name>

az acr connected-registry create --registry $REGISTRY_NAME \
  --name $CONNECTED_REGISTRY_RW \
  --repository "hello-world" "acr/connected-registry" "azureiotedge-agent" "azureiotedge-hub" "azureiotedge-api-proxy"

此命令會建立名稱值為 $CONNECTED_REGISTRY_RW 的已連線登錄資源,並且將其連結至名稱值為 $REGISTRY_NAME 的雲端登錄。 在稍後的快速入門指南中,您會了解部署已連線登錄的選項。

  • 在部署指定存放庫之後,該存放庫會在雲端登錄與已連線登錄之間同步處理。

  • 因為未針對已連線登錄指定 --mode 選項,所以會在預設 ReadWrite 模式中建立。

  • 由於未針對此已連線登錄定義任何同步排程,因此存放庫會在雲端登錄與已連線的登錄之間同步處理,而不會中斷。

    重要

    若要支援較低層沒有網際網路存取的巢狀案例,您必須一律允許同步處理 acr/connected-registry 存放庫。 此存放庫包含已連線登錄執行階段的映像。

建立已連線的登錄資源以獲得唯讀功能

您也可以使用 az acr connected-registry create 命令來建立具有唯讀功能的已連線登錄。

# Set the CONNECTED_REGISTRY_READ environment variable to provide a name for the connected registry with read-only functionality
CONNECTED_REGISTRY_RO=<connnected-registry-name>
az acr connected-registry create --registry $REGISTRY_NAME \
  --parent $CONNECTED_REGISTRY_RW \
  --name $CONNECTED_REGISTRY_RO \
  --repository "hello-world" "acr/connected-registry" "azureiotedge-agent" "azureiotedge-hub" "azureiotedge-api-proxy" \
  --mode ReadOnly

此命令會建立名稱值為 $CONNECTED_REGISTRY_RO 的已連線登錄資源,並且將其連結至名稱值為 $REGISTRY_NAME 的雲端登錄。

  • 指定存放庫在部署之後,將會在名稱值為 $CONNECTED_REGISTRY_RW 的父代登錄與已連線登錄之間同步處理。
  • 此資源會在 ReadOnly 模式中建立,可在部署之後啟用唯讀 (成品提取) 功能。
  • 由於未針對此已連線登錄定義任何同步排程,因此存放庫會在父代登錄與已連線的登錄之間同步處理,而不會中斷。

確認資源已建立

您可以使用已連線的登錄 az acr connected-registry list 命令來確認已建立資源。

az acr connected-registry list \
  --registry $REGISTRY_NAME \
  --output table

您應該會看到如下的回應。 因為尚未部署已連線的登錄,所以「離線」的連線狀態表示其目前已與雲端中斷連線。

NAME                 MODE        CONNECTION STATE    PARENT               LOGIN SERVER    LAST SYNC (UTC)
-------------------  --------    ------------------  -------------------  --------------  -----------------
myconnectedregrw    ReadWrite    Offline
myconnectedregro    ReadOnly     Offline             myconnectedregrw

下一步

在本快速入門中,您會使用 Azure CLI 在 Azure 中建立兩個已連線登錄資源。 這些新的已連線登錄資源會繫結至您的雲端登錄,並允許與雲端登錄同步處理成品。

請繼續進行已連線的登錄部署指南,了解如何在 IoT Edge 基礎結構上部署和使用已連線的登錄。