如何連結和管理 IoT 中樞

Azure IoT 中樞裝置布建服務 (DPS) 可以在一或多個 IoT 中樞布建裝置。 在 DPS 可以將裝置布建至 IoT 中樞之前,它必須連結到您的 DPS 實例。 連結之後,IoT 中樞就可以在配置原則中使用。 配置原則會決定 DPS 如何將裝置指派給 IoT 中樞。 本文提供如何在 DPS 實例中連結 IoT 中樞和管理這些中樞的指示。

連結的 IoT 中樞和配置原則

DPS 只能將裝置布建至已連結的 IoT 中樞。 將 IoT 中樞連結至 DPS 實例可提供服務讀取/寫入權限給 IoT 中樞的裝置登錄。 透過這些許可權,DPS 可以註冊裝置識別碼,並在裝置對應項中設定初始設定。 連結的 IoT 中樞可能位於任何 Azure 區域中。 您可以將其他訂用帳戶中的中樞連結至 DPS 實例。

IoT 中樞連結至 DPS 之後,就有資格參與配置。 其參與配置的方式取決於裝置在註冊中布建的設定,以及連結 IoT 中樞本身的設定。

下列設定可控制 DPS 如何使用連結的 IoT 中樞:

  • 連線ion 字串 :設定 DPS 用來連線到連結 IoT 中樞的IoT 中樞 連接字串。 連接字串是以其中一個 IoT 中樞的共用存取原則為基礎。 DPS 需要 IoT 中樞的下列許可權: RegistryWrite 和服務 連線 。 連接字串必須是具有這些許可權的共用存取原則。 若要深入瞭解IoT 中樞共用存取原則,請參閱 IoT 中樞存取控制和許可權

  • 配置權數 :決定 DPS 雜湊一組 IoT 中樞跨一組 IoT 中樞指派時選取 IoT 中樞的可能性。 此值可以介於 1 到 1000 之間。 預設值為一個 (或 null )。 較高的值會增加選取 IoT 中樞的機率。

  • 套用配置原則 :設定 IoT 中樞是否參與配置原則。 預設值為 [ ] (true)。 如果設定為 [否 ] (false),則不會將裝置指派給 IoT 中樞。 IoT 中樞仍可在註冊上選取,但不會參與配置。 您可以使用此設定暫時或永久移除 IoT 中樞參與配置;例如,如果接近允許的裝置數目。

若要瞭解 DPS 配置原則,以及連結的 IoT 中樞如何參與它們,請參閱 管理配置原則

新增連結的 IoT 中樞

當您將 IoT 中樞連結至 DPS 實例時,即可參與配置。 您可以新增訂用帳戶內部或外部的 IoT 中樞。 當您連結 IoT 中樞時,它可能無法用於現有註冊中的配置:

  • 對於未明確設定 IoT 中樞以套用配置原則的註冊,新連結的 IoT 中樞會立即開始參與配置。

  • 針對明確設定 IoT 中樞以套用配置原則的註冊,您必須手動或以程式設計方式將新的 IoT 中樞新增至註冊設定,才能參與配置。

限制

  • 使用連結的 IoT 中樞和私人端點時,有一些限制。 如需詳細資訊,請參閱 私人端點限制

  • 連結IoT 中樞必須使用 共用存取原則 設定為 [允許 ] 的連線。

在Azure 入口網站中,您可以從 DPS 實例的左側功能表或建立或更新註冊時,從註冊連結 IoT 中樞。 在這兩種情況下,IoT 中樞的範圍都限於 DPS 實例(不只是註冊)。

若要將 IoT 中樞連結至Azure 入口網站中的 DPS 實例:

  1. 在 DPS 實例的左側功能表上,選取 [連結的 IoT 中 樞]。

  2. 在頁面頂端,選取 [+ 新增 ]。

  3. 在 [ 新增 IoT 中樞 的連結] 頁面上,選取包含 IoT 中樞的訂用帳戶,然後從 IoT 中樞清單中選擇 IoT 中樞的名稱。

  4. 選取 IoT 中樞之後,請選擇 DPS 將用來連線到 IoT 中樞的存取原則。 [ 存取原則 ] 清單會顯示在已定義 RegistryWrite 和服務 連線 許可權之所選IoT 中樞 上定義的所有共用存取原則。 預設值為 iothubowner 原則 。 選取您想要使用的原則。

  5. 選取 [儲存]。

當您建立或更新註冊時,可以使用註冊上的 [ 連結新的 IoT 中樞 ] 按鈕。 您會看到與上述相同的頁面和選項。 儲存連結的中樞之後,其將會在您的 DPS 實例上使用,而且可以從您的註冊中選取。

注意

在Azure 入口網站中,您無法在新增連結的 IoT 中樞時設定 [配置權數 ] 和 [套用配置原則 設定]。 相反地,您可以在連結 IoT 中樞之後更新這些設定。 若要深入瞭解,請參閱 更新連結的 IoT 中樞

使用 az iot dps linked-hub create Azure CLI 命令,將 IoT 中樞連結至 DPS 實例。

例如,下列命令會使用 iothubowner 共用存取原則的連接字串 連結名為 MyExampleHub 的 IoT 中樞。 此命令會 保留 [配置權數 ] 和 [套用配置原則 設定] 預設值,但如果您想要的話,您可以指定這些設定的值。

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

DPS 也支援使用 建立或更新 DPS 資源 REST API、 Resource Manager 範本 DPS 管理 SDK 來連結IoT 中樞。

更新連結的 IoT 中樞

您可以更新連結 IoT 中樞上的設定,以變更其配置權數、是否可以套用配置原則,以及 DPS 用來連線的連接字串。 當您更新 IoT 中樞的設定時,變更會立即生效,不論 IoT 中樞是在註冊上指定還是預設使用。

使用Azure 入口網站來更新連結的 IoT 中樞

在Azure 入口網站中,您可以更新 [配置權數 ] 和 [套用配置原則 設定]。

若要使用 Azure 入口網站更新連結 IoT 中樞的設定:

  1. 在 DPS 實例的左側功能表上,選取 [連結的 IoT 中樞 ],然後從清單中選取 IoT 中樞。

  2. 在 [ 連結的 IoT 中樞詳細資料] 頁面上:

    Screenshot that shows the linked IoT hub details page. .

    • 使用 [ 配置權數] 滑杆或文字方塊,即可選擇介於 1 到 1000 之間的權 數。 預設值為一。

    • 設定 [ 套用配置原則 ] 參數,以指定連結的 IoT 中樞是否應該包含在配置中。

  3. 儲存您的設定。

注意

您無法更新 DPS 用來從Azure 入口網站連線到 IoT 中樞的連接字串。 相反地,您可以使用 Azure CLI 來更新連接字串,或者您可以從 DPS 實例刪除連結的 IoT 中樞,然後重新連結它。 若要深入瞭解,請參閱 更新連結 IoT 中樞的 金鑰。

使用 Azure CLI 來更新連結的 IoT 中樞

透過 Azure CLI,您可以更新 配置權數 套用配置原則 ,以及 連線字串 設定。

使用 az iot dps linked-hub update 命令來更新配置權數或套用配置原則設定。 例如,下列命令會設定配置權數,並套用連結 IoT 中樞的配置原則:

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

使用 az iot dps update 命令來更新連結 IoT 中樞的連接字串。 您可以使用 --set 參數以及您想要使用的 IoT 中樞共用存取原則連接字串。 如需詳細資訊,請參閱 更新連結 IoT 中樞的 金鑰。

DPS 也支援使用 建立或更新 DPS 資源 REST API、 Resource Manager 範本 DPS 管理 SDK 來更新連結IoT 中樞。

刪除連結的 IoT 中樞

當您從 DPS 實例刪除連結的 IoT 中樞時,將無法再在未來註冊中設定。 不過,它可能不會從現有註冊中的配置中移除:

  • 若註冊未明確設定要套用配置原則的 IoT 中樞,已刪除的連結 IoT 中樞將無法再用於配置。

  • 對於明確設定要套用配置原則的 IoT 中樞註冊,您必須手動或以程式設計方式從註冊設定中移除 IoT 中樞,才能從參與配置中移除 IoT 中樞。 如果裝置嘗試透過註冊進行布建,則失敗可能會導致錯誤。

使用Azure 入口網站刪除連結的 IoT 中樞

若要從Azure 入口網站中的 DPS 實例刪除連結的 IoT 中樞:

  1. 在 DPS 實例的左側功能表上,選取 [連結的 IoT 中 樞]。

  2. 從 IoT 中樞清單中,選取您要刪除的 IoT 中樞或 IoT 中樞旁邊的核取方塊。 然後選取頁面頂端的 [ 刪除 ],並在出現提示時確認您的選擇。

使用 Azure CLI 刪除連結的 IoT 中樞

使用 az iot dps linked-hub delete 命令,從 DPS 實例中移除連結的 IoT 中樞。 例如,下列命令會移除名為 MyExampleHub 的 IoT 中樞:

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

DPS 也支援使用 建立或更新 DPS 資源 REST API、 Resource Manager 範本 DPS 管理 SDK ,從 DPS 實例刪除連結IoT 中樞。

更新連結 IoT 中樞的金鑰

可能需要輪替或更新已連結至 DPS 之 IoT 中樞的對稱金鑰。 在此情況下,您也需要更新連結 IoT 中樞 DPS 中的連接字串設定。 請注意,布建至 IoT 中樞會在更新 IoT 中樞上的金鑰,並使用以該金鑰為基礎的新連接字串更新 DPS 實例之間的過渡期間失敗。 基於這個理由,我們建議您 使用 Azuer CLI 來更新金鑰 ,因為您可以更新連結中樞上的串連字號串。 使用Azure 入口網站時,您必須從 DPS 實例刪除 IoT 中樞,然後重新連結以更新連接字串。

使用Azure 入口網站來更新金鑰

使用 Azure 入口網站 時,您無法更新連結IoT 中樞的連接字串設定。 相反地,您需要從 DPS 實例刪除連結的 IoT 中樞,然後重新新增它。

若要更新Azure 入口網站中連結 IoT 中樞的對稱金鑰:

  1. 在Azure 入口網站中 DPS 實例的左側功能表上,選取您要更新金鑰的 IoT 中樞。

  2. 在 [ 連結的 IoT 中樞詳細資料] 頁面上,記下 [配置權數 ] 和 [套用配置原則 ] 的值 ,當您稍後將 IoT 中樞重新連結至 DPS 實例時,您將需要這些值。 然後,選取 [管理資源 ] 以移至 IoT 中樞。

  3. 在 IoT 中樞的左側功能表中,于 [安全性設定 ] 底下 ,選取 [共用存取原則 ]。

  4. 在 [共用存取原則] 的 [管理共用存取 原則 ] 底下 ,選取 DPS 實例用來連線到連結 IoT 中樞的原則。

  5. 在頁面頂端,選取 [重新產生主鍵]、 [重新產生次要金鑰 ] 或 [交換金鑰 ],然後在出現提示時確認您的選擇。

  6. 流覽回 DPS 實例。

  7. 請遵循刪除 IoT 中樞 中的 步驟,從 DPS 實例中刪除 IoT 中樞。

  8. 請遵循連結 IoT 中樞 中的 步驟,使用原則的新連接字串,將 IoT 中樞重新連結至 DPS 實例。

  9. 如果您需要還原配置權數並套用配置原則設定,請遵循使用您在步驟 2 中儲存的值來更新連結的 IoT 中樞 中的步驟

使用 Azure CLI 來更新金鑰

若要使用 Azure CLS 更新連結 IoT 中樞的對稱金鑰:

  1. 使用 az iot hub policy renew-key 命令,交換或重新產生 IoT 中樞上共用存取原則的對稱金鑰。 例如,下列命令會更新 IoT 中樞上 iothubowner 共用存取原則的主鍵

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. 使用 az iot hub connection-string show 命令來取得共用存取原則的新連接字串。 例如,下列命令會取得在上一個命令中重新產生主鍵的 iothubowner 共用存取原則的主要連接字串

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. 使用 az iot dps linked-hub list 命令來尋找 IoT 中樞在 DPS 實例連結 IoT 中樞集合中的位置。 例如,下列命令會取得上一個命令中重新產生主鍵之擁有者 共用存取原則的主要連接字串

    az iot dps linked-hub list --dos-name MyExampleDps
    

    輸出會顯示您要更新 DPS 實例所維護之連結 IoT 中樞資料表中連接字串的位置。 在此情況下,它是清單中的 第一個 IoT 中樞 MyExampleHub

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. 使用 az iot dps update 命令來更新連結 IoT 中樞的連接字串。 您可以使用 --set 參數和資料表中 properties.iotHubs[] 連結 IoT 中樞的位置,以 IoT 中樞為目標。 例如,下列命令會更新先前命令中第一個傳回的 MyExampleHub 連接字串:

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

下一步