Azureデバイスレジストリのグループとは、ソフトウェアアップデートなどのフリートスケール運用をターゲットにするために使うクエリ定義の均質リソースの集合です。 現在のプレビューでは、グループは IoT Hub に接続されたデバイスを対象とします。 個々のリソースを管理する代わりに、一度フィルターを定義し、フィルターから得られるグループをそのリソースセットに対して操作を行う必要がある場所で再利用できます。
Important
Azureデバイスレジストリグループは現在プレビュー段階です。
サービスの適用性
| 機能 | Azure IoT Operations | Azure IoT Hub |
|---|---|---|
| Groups | このプレビューではサポートされていません | プレビュー |
このプレビューでは、Azure デバイス レジストリ名前空間のグループでIoT Hub接続デバイスがサポートされます。
クエリで定義されたメンバーシップ
メーカーやソフトウェアのリビジョンなど、サポートされたリソースプロパティに基づいてフィルターを定義してグループを作成します。 プレビューでは、サポートされているAzureリソースタイプはRegistryDeviceのみです。 Azureデバイスレジストリは名前空間内のフィルターを評価し、一致するすべてのリソースをグループに追加します。
RegistryDeviceグループについては、クエリ定義でクエリ言語のプロパティ名を使いましょう。 例えば次が挙げられます。
WHERE manufacturer = 'Contoso' AND model = 'Sensor-v2'
1つのデバイスは同時に複数のグループに属することができます。 例えば、あるデバイスが「ファームウェアバージョン2.1」グループと「building 12」グループの両方にマッチすることがあります。 メンバーシップは排他的ではないため、異なる運用ニーズに合わせてグループを編成でき、機器を重複させる必要はない。
RegistryDevice でサポートされるプロパティと演算子
以下の表は、 RegistryDevice フィルタークエリに対応しているプロパティと演算子を示しています。
| ユーザー用語 | プロパティパス | リテラル型 | Operators |
|---|---|---|---|
| 名前空間UUID | namespaceUuid |
文字列 |
=、!=、<> |
| 名前 | name |
文字列 |
=、!=、<>、IN、NIN |
| リソースの種類 | resourceType |
文字列 |
=、!=、<> |
| 位置 | location |
文字列 |
=、!=、<>、IN、NIN |
| デバイスUUID | uuid |
文字列 |
=、!=、<>、IN、NIN |
| プロビジョニングの状態 | provisioningState |
文字列 |
=、!=、<>、IN、NIN |
| 外部デバイスID | externalDeviceId |
文字列 |
=、!=、<>、IN、NIN |
| 有効、無効 | enabled |
string enum |
=、 !=、 <>;値は 'Enabled' であり、 'Disabled' |
| 製造元 | manufacturer |
文字列 |
=、!=、<> |
| モデル | model |
文字列 |
=、!=、<> |
| ソフトウェアの改訂 | softwareRevision |
文字列 |
=、!=、<> |
| タグキー | tags.<key> |
文字列 |
=、 !=、 <>;最大経路深度は4です。 |
RegistryDeviceでサポートされる更新プロパティと演算子
以下の表は、attributes.updateスコープ内のRegistryDeviceフィルタークエリでサポートされているプロパティと演算子を示しています。
| プロパティパス | リテラル型 | 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 ステータスになるとメンバーをリストアップできます。
メンバーシップがキャッシュされているため、グループのメンバーリストはリフレッシュの間に古くなることがあります。 リソースのプロパティが変わったり、新しいリソースがフィルターに一致し始めた場合、その変更は次のリフレッシュが完了するまで手動リフレッシュグループのメンバーリストには反映されません。 このサービスでは手動更新の間に最低1時間の間隔を設けています。
イミュータブル フィルターとライフサイクル
グループ名や説明を編集できます。 フィルターは作成時に固定されます。異なるデバイスセットをターゲットにする場合は、新しいフィルターでグループを作成または複製します。
異なるリソースセットまたは調整されたリソースセットを対象にするには、新しいフィルターを設定した別のグループを作成します。 グループを削除すると、そのグループだけが削除されます。そのメンバーデバイスが残ります。
Azure ポータルでグループを管理する(プレビュー)
このプレビューでは、名前空間ナビゲーションの グループ(プレビュー)ページにグループが一覧表示され、グループ詳細ビューが開きます。 詳細ビューでは、グループの基本情報、読み取り専用のクエリフィルター定義、現在のメンバー数と最終更新時間が表示されます。 フィルターは作成時に設定され編集できないため、詳細ビューを使ってグループが対象とするデバイスを確認してください。 メンバーリストは最大10台のデバイスをプレビューできるので、大規模なグループ全体のリストではなく、抜き出しチェックとして扱いましょう。
グループリストまたはグループ詳細ビューから、以下の操作が可能です:
- リストビューから、必要な名前、オプションの説明、クエリフィルターを指定してグループを作成します。
- リストや詳細ビューから既存のグループをクローンします。 クローン作成は、元のフィルターを編集できないため、調整されたメンバーシップ基準が必要な場合にグループの定義から始める実用的な方法です。
- 詳細ビューからグループ名と説明を編集してください。 クエリフィルターは不変のままです。
- リストビューまたは詳細ビューで、グループのキャッシュされたメンバーシップを更新します(キャッシュされたメンバーシップと更新 で説明されている更新の制限に従います)。
- リストや詳細ビューからグループを削除してください。 グループ名を入力して削除を確認します。
ジョブとソフトウェアアップデートとの関係
グループは、それらを使用する単一の機能とは独立して存在します。 グループとは、複数の場所から参照できる再利用可能なフリート管理リソースのことです。 例えば、 ジョブ は標準的なソフトウェア更新操作のターゲットとしてグループを使用します。
グループは複数のジョブやワークフローから参照されるため、グループを削除したり可用性を変更したりすると、それに依存するあらゆるものに影響を及ぼす可能性があります。 グループのライフサイクル変更をその依存性を念頭に置いて計画しましょう。
制限とプレビュー制限
現在、グループには以下の制限が適用されています:
- サブスクリプションごとに最大100グループまで対応可能です。
- 手動リフレッシュの間に最低1時間の間隔があります。
-
ListMembersページサイズは1,000で、このプレビューではフィルタリングや並べ替えは適用されません。