您可以複製現有的 Azure IoT 作業執行個體,以建立具有相同組態和設定的新執行個體。 複製對於建立執行個體的備份或設定具有相同組態的新執行個體以進行測試或開發非常有用。
複製的使用案例包括:
- 災害復原:建立 Azure IoT 作業執行個體的備份,以便在發生災害時用來還原執行個體。
- 測試和開發:設定新的 Azure IoT 作業實例,其設定與現有實例相同,以進行測試或開發。
- 移轉:將執行個體複製到新位置,將 Azure IoT Operations 執行個體移至新的叢集或資源群組。
- 調整:建立 Azure IoT 作業執行個體的多個執行個體,以處理增加的工作負載,或將負載分散到多個執行個體。
備註
複製功能處於預覽狀態,且正在開發中。
先決條件
部署至叢集的 Azure IoT 操作執行個體。 如需詳細資訊,請參閱 部署 Azure IoT 作業。
在您的開發電腦上安裝 Azure CLI。 此案例需要 Azure CLI 2.53.0 版或更高版本。 使用
az --version檢查您的版本,並視需要更新az upgrade。 如需詳細資訊,請參閱如何安裝 Azure CLI。適用於 Azure CLI 的 Azure IoT 操作延伸模組。 複製目前與下列 IoT 操作執行個體版本範圍相容:
1.0.34>=,<1.2.0。 使用下列命令來更新或安裝延伸模組。 將<VERSION_NUMBER>替換為與您的執行個體相容的版本。az extension add --upgrade --name azure-iot-ops --version <VERSION_NUMBER>
克隆命令概觀
az iot ops clone使用 命令,根據現有的實例建立新的 Azure IoT 作業實例。
此 clone 命令會分析 Azure IoT 作業實例,並透過 ARM 範本以基礎結構即程式碼的方式重現它。 您可以將複製的輸出套用至另一個連線的叢集,稱為複寫。 您也可以將複製品儲存到本機目錄,以供稍後使用,並在將它套用至叢集之前執行一些設定變更。
複製作業由三個主要元件組成:模型(來源實例)、目標(目標實例)和範本。 下圖說明複製流程。 此 clone 命令會分析來源執行個體,並透過 IaC/ARM 範本進行複寫。 複寫的定義會套用至一或多個目的地叢集。
複製模型
模型是您要從中複製的執行個體。 它是克隆操作的真實來源。 若要識別模型,請輸入下列參數:
-
--name/-n:模型實例名稱。 -
--resource-group/-g:包含模型執行個體的資源群組。
複製目標
目標是您要複寫或儲存複製品定義的位置。 您可以將複製體套用至一個目標、所有目標或不套用至任何目標。 如果您未提供任何目標選項,則程序會在輸出範圍內資源的摘要之後終止。 若要識別目標,請輸入下列其中一個參數:
--to-cluster-id:提供您要複寫複製執行個體之目標叢集的完整 Azure 資源識別碼。 當您使用此選項時,複製命令會將複製定義中指定的 Azure IoT 作業版本部署至目標叢集,然後套用所有相關資源來完成部署。 目前只有在複製至叢集目標時,才支援使用者指派的受控識別 (UAMI) 認證的自動同盟。--to-dir:提供本機目錄路徑,以將複製品定義複寫到磁碟,以便使用現有的 ARM 部署工具進行部署 (無論是否進行修改)。 如果您檢查克隆定義,您會看到各種參數化正在發揮作用,以便輕鬆進行一些自訂。
這很重要
選取目標資源群組時,請考慮使用不包含現有 IoT Operations 安裝且與模型資源群組分開的資源群組。 依預設,複製定義會保留模型執行個體中的資源名稱。 如果目標和模型共用相同的資源群組,而您變更自訂位置,則可能會發生資源名稱衝突。
複製範本
clone 指令會產生 ARM 範本,說明要在目標中建立的資源。 範本是根據模型執行個體中的資源及其組態來產生。 輸入下列選擇性參數以自訂範本:
克隆樣板自訂參數
您可以使用下列選擇性參數來自訂產生的 ARM 範本:
--mode:指定子部署在範本中的組織方式。- 使用
nested模式時(預設值),所有子部署都是個別獨立於根部署檔案中的。 - 當使用
linked模式時,資產相關的子部署會被分割並儲存為獨立檔案,然後由根部署進行連結。 如果您的執行個體包含大量裝置和資產,請使用linked模式來改善可擴展性和可管理性。 除非您需要針對大型部署進行此分隔,否則您不需要指定此參數。
- 使用
--param:可讓您使用格式location覆寫內建預設參數,例如instanceName、adrNamespaceId或key=value。 用於--help顯示按鍵的完整清單。
複製實例
若要複製執行個體,請使用命令 az iot ops clone 並輸入適當的參數來指定來源執行個體和目標位置。
開始之前,請將預設訂閱設定為模型執行個體所在的相同訂閱。 否則,每次執行
--subscription命令時都需要附加az iot ops clone。az account set -s $MODEL_SUBSCRIPTION_ID若要取得叢集資源 ID,請執行:
az resource show --name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --resource-type "Microsoft.Kubernetes/connectedClusters" --query id --output tsv若要複製執行個體,並使用預設選項複寫至目標 arc 連線叢集,請執行:
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID>若要自定義複寫至另一個叢集,請使用
--param並指定您想要以 格式key=value變更的參數。 例如,若要變更複製實例的位置,請執行:az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --param location=eastus若要將執行個體複製至本端磁碟,請使用參數
--to-dir來指定您要儲存複製定義的目錄。 此選項會產生標準 ARM 範本,由您自行決定操作或部署。az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-dir <DIRECTORY>小提示
若要將實例複製到目前目錄,請執行
--to-dir .若要將執行個體複製並複寫至目標叢集,並在相同的作業中儲存至檔案,請執行:
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --to-dir <DIRECTORY>若要將執行個體複製至叢集,但分割並循序套用資產相關的子部署,請使用
--mode linked.當模型執行個體包含大量資產相關資源時,此參數會提供最高程度的規模。az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-cluster-id <CLUSTER_ID> --mode linked若要以連結模式將執行個體複製至磁碟,其中每個連結資產和/或資產端點設定檔範本都可以與根範本分開部署。
az iot ops clone --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --to-dir . --mode linked
考慮事項與限制條件
- 目前只有使用
--to-cluster-id選項時才支援自動識別身分同盟。 - 不會擷取資源同步處理規則。
- 雖然 IoT 操作系統受控識別與目標結構描述登錄之間的必要角色指派是由複製品處理,但不涵蓋任何其他系統受控識別角色指派。
- 複製是雲端端作業。 無法直接與叢集互動。 叢集密碼會透過安全設定從雲端同步,其中包含秘密提供者類別和秘密同步雲端資源。 如果模型叢集包含使用者建立的元素,例如模型 IoT 作業解決方案中引用的配置映射,則必須重新實施這些元素以符合目標叢集。