Azure 裝置登錄中的群組是一組由查詢定義的同質資源,用來針對車隊規模的作業,例如軟體更新。 在目前的預覽中,一個群組以連線到 IoT 中樞 的裝置為目標。 你不是管理單一資源,而是定義一個篩選器,然後在需要對那組資源採取行動的地方重複使用產生的群組。
Important
Azure 裝置登錄群組目前處於預覽階段。
服役適用性
| Feature | Azure IoT 操作 | Azure IoT 中樞 |
|---|---|---|
| Groups | 此預覽版中不受支援 | Preview |
在此預覽中,群組支援連接 IoT 中樞 的裝置,並可在 Azure Device Registry 命名空間中使用。
查詢定義的成員身分
你可以根據支援的資源屬性(如製造商或軟體版本)定義過濾器來建立群組。 在預覽版中,唯一支援的 Azure 資源類型是 RegistryDevice。 Azure 裝置登錄會在命名空間內評估篩選器,並將所有相符的資源填充該群組。
對於 RegistryDevice 群組,請在查詢定義中使用查詢語言屬性名稱。 例如:
WHERE manufacturer = 'Contoso' AND model = 'Sensor-v2'
一個裝置可以同時屬於多個群組。 例如,一個裝置可能同時匹配到「韌體版本 2.1」和「12 號建築物」群組。 會員資格並非排他性,因此你可以根據不同的營運需求組成群組,而無需重複建立裝置。
RegistryDevice 支援的屬性與運算元
下表顯示了支援的 RegistryDevice 篩選查詢的屬性與運算子:
| 使用者術語 | 屬性路徑 | 字面型 | Operators |
|---|---|---|---|
| 命名空間 UUID | namespaceUuid |
字串 |
=、!=、<> |
| 名字 | name |
字串 |
=、、 !=、 <>、 IN、 NIN |
| 資源類型 | resourceType |
字串 |
=、!=、<> |
| 位置 | location |
字串 |
=、、 !=、 <>、 IN、 NIN |
| 裝置 UUID | uuid |
字串 |
=、、 !=、 <>、 IN、 NIN |
| 佈建狀態 | provisioningState |
字串 |
=、、 !=、 <>、 IN、 NIN |
| 外部裝置識別碼 | externalDeviceId |
字串 |
=、、 !=、 <>、 IN、 NIN |
| 啟用、停用 | enabled |
字串列舉 |
=、!=、<>;值為 'Enabled' 和 'Disabled' |
| 製造商 | manufacturer |
字串 |
=、!=、<> |
| 型號 | model |
字串 |
=、!=、<> |
| 軟體修訂 | softwareRevision |
字串 |
=、!=、<> |
| 標籤鍵 | tags.<key> |
字串 |
=, !=, <>; 最大路徑深度為 4 |
RegistryDevice 支援的更新屬性與運算子
下表顯示 RegistryDevice 範圍內的 attributes.update 篩選查詢所支援的屬性與運算子:
| 屬性路徑 | 字面型 | Operators |
|---|---|---|
attributes.update.deviceClassId |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.installedUpdateId.provider |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.installedUpdateId.name |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.installedUpdateId.version |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.latestUpdateJobInfo.state |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.latestUpdateJobInfo.updateId.provider |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.latestUpdateJobInfo.updateId.name |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.latestUpdateJobInfo.updateId.version |
字串 |
=、、 !=、 <>、 IN、 NIN |
attributes.update.agentInfo.compatibilityProperties.<key> |
字串 |
=、!=、<>;最大路徑深度為 5 |
attributes.update.agentInfo.agentProfile |
整數 |
=、、 !=、 <>、 IN、 NIN |
你可以使用 AND、OR、NOT、括號,以及與 null 的比較來組合條件。 不支援標量函數,如 STARTSWITH、CONTAINS、IS_NULL 和 IS_DEFINED、欄位對欄位比較,以及任意 properties.* 或 attributes.* 路徑。
快取的成員資格與重新整理
群組成員資格會在刷新時計算並快取,而非即時評估。 當你建立群組,或重新整理現有群組時,Azure 裝置登錄會重新評估篩選器並更新快取的成員清單。
你可透過 RefreshMembers 操作觸發群組重新整理。 刷新是非同步的,群組可以有 Creating、 RefreshingMembers或 Ready 狀態。 當團體達到 Ready 正式地位後,你可以檢視成員名單。
由於成員是快取的,群組的成員清單在刷新之間可能會過時。 如果資源屬性改變,或有新資源開始符合篩選條件,該變更不會反映在手動刷新群組的成員清單中,直到下一次刷新完成。 該服務規定手動刷新之間至少間隔一小時。
不可變過濾器與生命週期
你可以編輯群組名稱和描述。 過濾器在建立時是固定的;若要針對另一組不同的裝置,則建立或複製一個帶有新過濾器的群組。
若要鎖定不同或調整過的資源集合,請建立一個使用新篩選器的獨立群組。 刪除群組只會移除該群組;其成員裝置會保留。
在 Azure portal 中管理群組(預覽)
在這個預覽中,命名空間導覽中的 群組(預覽) 頁面列出你的群組,並開啟群組詳細檢視。 詳細檢視顯示群組的重點、唯讀查詢篩選器的定義,以及目前的成員數和最後更新時間。 因為篩選器是在建立時設定的,無法編輯,請使用詳細檢視來確認群組針對哪些裝置。 會員名單預覽最多 10 台裝置,因此應視為抽查,而非完整列出一大群裝置。
從群組清單或群組詳細檢視中,您可以採取以下操作:
- 從清單檢視建立群組,提供必要名稱、可選的描述和查詢篩選器。
- 從清單或詳細檢視中複製現有的群組。 因為你無法編輯原始篩選器,所以當你需要調整成員資格條件時,複製是從群組定義開始的實際方法。
- 從詳細檢視中編輯群組名稱和描述。 查詢過濾器保持不變。
- 在清單或詳細檢視中刷新群組的快取成員資格,並依照快取成員與刷新中所述的刷新限制。
- 從清單或詳細檢視中刪除群組。 你要輸入群組名稱來確認刪除。
與工作及軟體更新的關係
群體獨立於任何消耗它們的單一功能之外。 Group 是一種可重複使用的艦隊管理資源,你可以在多處引用。 例如,一個 作業 以群組作為標準軟體更新操作的目標。
由於一個群組可以被多個工作或工作流程參考,刪除群組或以其他方式改變其可用性,可能會影響依賴該群組的任何事物。 規劃群組生命週期變更時,請將此相依性納入考量。
限制與預覽限制
目前團體的限制如下:
- 每個訂閱最多可有 100 個群組。
- 手動刷新之間至少間隔一小時。
-
ListMembers頁面大小為 1,000,預覽中無篩選或排序功能。