什麼是 Azure IoT 中樞裝置佈建服務?

IoT 中樞 裝置布建服務 (DPS) 是一項協助程式服務,適用於 IoT 中樞,不需要人為介入,即可對正確的 IoT 中樞進行零接觸、Just-In-Time 布建。 DPS 可讓您以安全且可調整的方式布建數百萬部裝置。 許多傳統上涉及布建的手動步驟都是使用 DPS 自動化,以減少部署 IoT 裝置的時間,並降低手動錯誤的風險。

裝置布建服務的運作方式

下圖說明使用 DPS 布建裝置的幕後動作。

Diagram that shows how the device, Device Provisioning Service, and IoT Hub work together.

在裝置布建流程開始之前,有兩個手動步驟可供準備:

  • 在裝置端,裝置製造商會準備裝置以進行布建,方法是使用其驗證認證進行預先設定,並指派裝置布建服務標識符和端點。
  • 在雲端端,您或裝置製造商會準備裝置布建服務實例,其中包含識別有效裝置的個別註冊和註冊群組,並定義應如何布建這些裝置。

裝置和雲端設定為布建後,只要裝置第一次開啟,下列步驟就會自動啟動:

  1. 裝置會第一次開啟,然後連線到 DPS 端點,並呈現驗證認證。
  2. DPS 實例會根據裝置的註冊清單檢查裝置的身分識別。 驗證裝置身分識別之後,DPS 會將裝置指派給 IoT 中樞,並在中樞中註冊。
  3. DPS 實例會從指派的中樞接收裝置標識碼和註冊資訊,並將該資訊傳回裝置。
  4. 裝置會使用其註冊資訊,直接連線到其指派的IoT中樞並進行驗證。
  5. 裝置和IoT中樞會開始直接通訊。 除非裝置需要重新佈建,否則 DPS 實例沒有進一步的角色作為媒介。

何時要使用裝置佈建服務

有許多布建案例,DPS 是讓裝置連線並設定為 IoT 中樞 的絕佳選擇,例如:

  • 以零接觸方式佈建到單一 IoT 解決方案,無須在出廠時硬式編碼 IoT 中樞連線資訊 (初始安裝)
  • 跨多個中樞為裝置進行負載平衡
  • 根據銷售事務數據將裝置 連線 至其擁有者的IoT解決方案(多租使用者)
  • 根據使用案例,將裝置連線到特定的 IoT 解決方案 (解決方案隔離)
  • 以最低的延遲將裝置連線到 IoT 中樞 (地區分區化)
  • 以裝置中的變更作為基礎重新佈建
  • 輪替裝置所用的金鑰,以連線到 IoT 中樞 (不使用 X.509 憑證連線時)。

DPS 目前不支援布建巢狀 IoT Edge 裝置(父/子階層)。

佈建程序

使用 DPS 布建裝置之前,有兩個步驟:

  • 在工廠建立和準備裝置的製造步驟,以及
  • 裝置 布建服務設定為自動布建的雲端設定步驟

這兩個步驟都可以併入現有的製造和部署程式。 DPS 甚至簡化了一些涉及手動工作的部署程式,以取得裝置上的連線資訊。

製造步驟

此步驟是製造生產線上發生什麼事的一切。 此步驟所涉及的角色包括晶片設計工具、矽製造商、整合者和/或裝置的終端製造商。 此步驟與建立硬體本身有關。

DPS 不會在製造過程中引入新的步驟;相反地,它會系結至現有步驟,以在裝置上安裝初始軟體,並在裝置上安裝硬體安全性模組 (HSM)。 裝置不會在此步驟中建立裝置標識碼,而是使用布建服務資訊進行程序設計,讓它在開啟時呼叫布建服務以取得其連線資訊/IoT 解決方案指派。

此外,在此步驟中,製造商也會提供裝置部署者/操作員,並提供識別密鑰資訊。 提供該資訊可能很簡單,只要確認所有裝置都有 X.509 憑證,由裝置部署者/操作員提供的簽署憑證產生,或從每個 TPM 裝置擷取 TPM 簽署密鑰的公用部分一樣複雜。 許多矽製造商都提供這些服務。

雲端設定步驟

這個步驟與設定適用於自動佈建的雲端相關。 通常雲端安裝步驟中會包含兩種類型的使用者:知道裝置必須初始設定方式的使用者 (裝置運算子),以及其他知道裝置如何在 IoT 中樞 (方案運算子) 之間分割的使用者。

布建服務有一次性的初始設定,解決方案操作員通常會處理此設定。 設定布建服務之後,除非使用案例變更,否則不需要修改它。

服務設定為自動布建之後,必須準備好註冊裝置。 此步驟是由裝置操作員所完成,該操作員知道裝置所需的設定,並確定布建服務可以正確證明裝置的身分識別。 裝置運算子會向製造商取得識別金鑰資訊,並將它新增至註冊清單。 隨著使用裝置的最新相關資訊來新增新的項目或更新現有的項目時,會對註冊清單進行後續更新。

註冊和佈建

布建 代表根據使用詞彙的產業而定的各種專案。 在將 IoT 裝置佈建到其雲端解決方案的內容中,佈建是一個包含兩個部分的程序:

  • 第一個部分是在裝置與 IoT 解決方案之間註冊裝置來建立初始連線。
  • 第二個部分是以其註冊之解決方案的特定需求為基礎為裝置套用正確的設定。

這兩個步驟都完成之後,裝置才算完全佈建。 某些雲端服務只會提供布建程式的第一個步驟、向IoT解決方案端點註冊裝置,但未提供初始設定。 DPS 會將這兩個步驟自動化,以提供裝置的無縫布建體驗。

裝置佈建服務的功能

DPS 有許多功能,因此非常適合用於布建裝置。

  • X.509 和 TPM 型身分識別的安全證明 支援。
  • 註冊清單 ,其中包含可能在某個時間點註冊之裝置/裝置群組的完整記錄。 一旦註冊,註冊清單就會包含裝置所需設定的相關資訊,並可以隨時進行更新。
  • 多個配置原則 ,可控制 DPS 如何指派裝置給 IoT 中樞,以支援您的案例:最低延遲、平均加權分佈(預設)和靜態設定。 延遲是使用與 流量管理員 相同的方法來決定。 自訂配置可讓您透過 Azure Functions 中裝載的 Webhook 實作自己的配置原則。也支援自定義配置。
  • 監視和診斷記錄 ,以確保一切正常運作。
  • 多中樞支援 可讓 DPS 將裝置指派給多個 IoT 中樞。 DPS 可以與多個 Azure 訂用帳戶之間的中樞通訊。
  • 跨區域支援 可讓 DPS 將裝置指派給其他區域中的IoT中樞。
  • 用數據的加密可讓 DPS 中的數據使用 256 位 AES 加密以透明方式加密和解密,這是可用的最強區塊加密之一,且符合 FIPS 140-2 規範。

您可以檢閱 DPS 術語文章,以及相同章節中的其他概念文章,以深入了解裝置布建所涉及的概念 和功能。

跨平台支援

就像所有 Azure IoT 服務一樣,DPS 會搭配各種操作系統跨平台運作。 Azure 提供各種 語言的開放原始碼 SDK ,以利連接裝置及管理服務。 DPS 支援下列通訊協議來連線裝置:

  • HTTPS
  • AMQP
  • 透過 Web 通訊端的 AMQP
  • MQTT
  • 透過 Web 通訊端的 MQTT

DPS 僅支援服務作業的 HTTPS 連線。

地區

DPS 可在許多區域中使用。 Azure 區域提供所有服務支援的區域清單。 您可以在 Azure 狀態頁面上檢查裝置佈建服務的可用性。

如需復原和可靠性,建議您部署到其中一個支援 可用性區域 的區域。

數據落地考慮

裝置布建服務會儲存客戶數據。 根據預設,客戶數據會復寫到次要區域,以支援災害復原案例。 針對東南亞和巴西南部的部署,客戶可以藉由 停用災害復原,選擇只在該區域內保留其數據。 如需詳細資訊,請參閱 Azure 中的跨區域複寫。

DPS 會針對所有布建服務實例使用相同的 裝置布建端點 ,並執行對最接近可用服務端點的流量負載平衡。 因此,驗證秘密可能會暫時傳輸至最初建立 DPS 實例的區域之外。 不過,一旦裝置連線,裝置數據就會直接流向 DPS 實例的原始區域。 為了確保您的數據不會離開原始或次要區域,請使用私人端點。 若要瞭解如何設定私人端點,請參閱 虛擬網路的 DPS 支援。

配額和限制

每個 Azure 訂用帳戶都有預設配額限制,可能會影響 IoT 解決方案的範圍。 目前的限制是每個訂用帳戶 10 個裝置布建服務實例。

如需配額限制的詳細資訊,請參閱 Azure 訂用帳戶服務限制

下表列出適用於 Azure IoT 中樞裝置佈建服務資源的限制。

資源 限制 是否可調整?
每個 Azure 訂用帳戶的裝置佈建服務上限 10 No
登錄數目上限 1,000,000 No
個別註冊數目上限 1,000,000 No
註冊群組 (「X.509 憑證」) 數目上限 100 No
註冊群組 (「對稱金鑰」) 數目上限 100 No
CA 數目上限 25 No
連結的 IoT 中樞數目上限 50 No
訊息大小上限 96 KB No

提示

如果對稱金鑰註冊群組的固定限制是封鎖問題,建議使用個別註冊作為因應措施。

裝置佈建服務具有下列速率限制。

費率 每個單位值 是否可調整?
Operations 1,000/分鐘/服務 No
裝置註冊 1,000/分鐘/服務 No
裝置輪詢作業 5/10 秒/裝置 No

計費服務作業和定價

DPS 上的每個 API 呼叫都會以一項 作業計費。 這包括所有服務 API 和裝置註冊 API。

下表顯示每個 DPS 服務 API 作業目前的計費狀態。 若要深入瞭解 DPS 的價格,請選取 Azure IoT 中樞 定價頁面頂端的 [定價] 數據表。 然後選取 [IoT 中樞 裝置布建服務] 索引標籤,以及您服務的貨幣和區域。

API 作業 計費?
裝置 API 裝置註冊狀態查閱 No
裝置 API 作業狀態查閱 No
裝置 API 註冊裝置 Yes
DPS 服務 API (註冊狀態) 刪除 Yes
DPS 服務 API (註冊狀態) Get Yes
DPS 服務 API (註冊狀態) 查詢 Yes
DPS 服務 API (註冊群組) 建立或更新 Yes
DPS 服務 API (註冊群組) 刪除 Yes
DPS 服務 API (註冊群組) Get Yes
DPS 服務 API (註冊群組) 取得證明機制 Yes
DPS 服務 API (註冊群組) 查詢 Yes
DPS 服務 API (註冊群組) 執行大量作業 Yes
DPS 服務 API (個別註冊) 建立或更新 Yes
DPS 服務 API (個別註冊) 刪除 Yes
DPS 服務 API (個別註冊) Get Yes
DPS 服務 API (個別註冊) 取得證明機制 Yes
DPS 服務 API (個別註冊) 查詢 Yes
DPS 服務 API (個別註冊) 執行大量作業 Yes
DPS 憑證 API 建立或更新 No
DPS 憑證 API 刪除 No
DPS 憑證 API 產生驗證碼 No
DPS 憑證 API Get No
DPS 憑證 API 清單​​ No
DPS 憑證 API 驗證憑證 No
IoT DPS 資源 API 檢查布建服務名稱可用性 No
IoT DPS 資源 API 建立或更新 No
IoT DPS 資源 API 刪除 No
IoT DPS 資源 API Get No
IoT DPS 資源 API 取得作業結果 No
IoT DPS 資源 API 依資源群組列示 No
IoT DPS 資源 API 依訂用帳戶列出 No
IoT DPS 資源 API 依索引鍵列出 No
IoT DPS 資源 API 列出金鑰名稱的金鑰 No
IoT DPS 資源 API 列出有效的 SKU No
IoT DPS 資源 API 更新 No

DPS 會使用 Azure IoT 中樞 自動布建裝置。 深入瞭解 IoT 中樞

注意

DPS 目前不支援布建巢狀邊緣裝置(父/子階層)。

IoT Central 應用程式會使用內部 DPS 實例來管理裝置連線。 若要深入瞭解,請參閱 裝置如何連線到 IoT Central

下一步

您現在已概觀在 Azure 中布建 IoT 裝置。 下一個步驟是試用端對端IoT案例。

使用 Azure 入口網站 設定 IoT 中樞 裝置布建服務

建立及布建模擬裝置