Dynamische Objektgruppen - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Dynamische Objektgruppen

Dynamische Dinggruppen werden anhand bestimmter Suchabfragen in der Registrierung erstellt. Suchabfrageparameter wie Gerätekonnektivität, Erstellung von Geräteschatten und Daten zu AWS IoT Device Defender Verstößen unterstützen dies. Für dynamische Dinggruppen muss die Flottenindizierung aktiviert sein, um die Daten Ihrer Geräte zu indizieren, zu durchsuchen und zu aggregieren. Sie können eine Vorschau der Dinge in einer dynamischen Dinggruppe mithilfe einer Suchabfrage zur Flottenindizierung anzeigen, bevor Sie sie erstellen. Weitere Informationen finden Sie unter -Flottenindizierung und Abfragesyntax.

Anmerkung

Dynamische Objektgruppenvorgänge werden im Rahmen von Registrierungsvorgängen gemessen. Weitere Informationen finden Sie unter AWS IoT Core Zusätzliche Details zur Messung.

Dynamische Objektgruppen unterscheiden sich von statischen Objektgruppen in folgender Hinsicht:

  • Die Objektmitgliedschaft ist nicht explizit definiert. Um eine dynamische Dinggruppe zu erstellen, definieren Sie eine Suchabfragezeichenfolge, um die Gruppenmitgliedschaft zu bestimmen.

  • Dynamische Objektgruppen können nicht Teil einer Hierarchie sein.

  • Auf dynamische Objektgruppen können keine Richtlinien angewendet werden.

  • Sie verwenden eine andere Gruppe von Befehlen zum Erstellen, Aktualisieren und Löschen von dynamischen Objektgruppen. Für alle anderen Operationen verwenden Sie dieselben Befehle für beide Arten von Dinggruppen.

  • Die Anzahl der dynamischen Gruppen pro AWS-Konto ist begrenzt.

  • Verwenden Sie keine persönlich identifizierbaren Informationen in Ihrem Dinggruppennamen. Der Name der Objektgruppe kann in unverschlüsselten Mitteilungen und Berichten vorkommen.

Weitere Informationen über statische Objektgruppen finden Sie unter Statische Objektgruppen.

Anwendungsfälle dynamischer Dinggruppen

Sie können dynamische Dinggruppen für die folgenden Anwendungsfälle verwenden:

Geben Sie eine dynamische Dinggruppe als Ziel für einen Job an

Wenn Sie einen kontinuierlichen Job mit einer dynamischen Dinggruppe als Ziel erstellen, können Sie Geräte automatisch als Ziel auswählen, wenn sie die gewünschten Kriterien erfüllen. Bei den Kriterien kann es sich um den Konnektivitätsstatus oder um in der Registrierung oder im Shadow gespeicherte Kriterien wie Softwareversion oder Modell handeln. Wenn ein Ding nicht in der dynamischen Dinggruppe erscheint, erhält es das Auftragsdokument aus dem Job nicht.

Zum Beispiel, wenn Ihre Geräteflotte ein Firmware-Update benötigt, um das Risiko einer Unterbrechung während des Aktualisierungsvorgangs zu minimieren, und Sie die Firmware nur auf Geräten mit einer Akkulaufzeit von mehr als 80% aktualisieren möchten. Sie können eine dynamische Dinggruppe mit dem Namen 80 erstellenPercentBatteryLife , die nur Geräte mit einer Akkulaufzeit von über 80% umfasst, und diese als Ziel für Ihre Arbeit verwenden. Nur Geräte, die Ihre Kriterien für die Akkulaufzeit erfüllen, erhalten das Firmware-Update. Wenn Geräte die Kriterien für die Akkulaufzeit von 80% erreichen, werden sie automatisch der dynamischen Objektgruppe hinzugefügt und erhalten das Firmware-Update.

Möglicherweise verfügen Sie auch über mehrere Gerätemodelle mit unterschiedlicher Firmware oder unterschiedlichen Betriebssystemen, sodass unterschiedliche Versionen neuer Softwareupdates erforderlich sind. Dies ist der häufigste Anwendungsfall für dynamische Gruppen mit fortlaufenden Aufträgen, bei denen Sie für jede Kombination aus Gerätemodell, Firmware und Betriebssystem eine dynamische Gruppe erstellen können. Anschließend können Sie fortlaufende Aufträge für jede dieser dynamischen Gruppen einrichten, um Softwareupdates zu übertragen, da Geräte anhand der definierten Kriterien automatisch Mitglieder dieser Gruppen werden.

Weitere Informationen zum Angeben von Dinggruppen als Jobziele finden Sie unter CreateJob.

Verwenden Sie dynamische Änderungen der Gruppenmitgliedschaft, um die gewünschten Aktionen durchzuführen

Jedes Mal, wenn ein Gerät zu einer dynamischen Dinggruppe hinzugefügt oder daraus entfernt wird, wird im Rahmen von Registrierungsereignisaktualisierungen eine Benachrichtigung an ein MQTT-Thema gesendet. Sie können AWS IoT Core Regeln für die Interaktion mit AWS Diensten konfigurieren, die auf den Aktualisierungen der dynamischen Gruppenmitgliedschaft basieren, und die gewünschten Aktionen ausführen. Zu den Beispielaktionen gehören das Schreiben in eine Lambda-Funktion Amazon DynamoDB, das Aufrufen einer Lambda-Funktion oder das Senden einer Benachrichtigung an Amazon SNS.

Fügen Sie Geräte zur automatischen Erkennung von Verstößen zu einer dynamischen Dinggruppe hinzu

AWS IoT Device Defender Detect: Kunden können ein Sicherheitsprofil für eine dynamische Dinggruppe definieren. Geräte der dynamischen Dinggruppe werden anhand des für die Gruppe definierten Sicherheitsprofils automatisch auf Verstöße erkannt.

Richten Sie Protokollebenen für dynamische Dinggruppen ein, um Geräte mit detaillierter Protokollierung zu beobachten

Sie können eine Protokollebene für eine dynamische Dinggruppe angeben. Dies ist nützlich, wenn Sie die Protokollierungsebene und die Details nur für Geräte anpassen möchten, die bestimmte Kriterien erfüllen. Wenn Sie beispielsweise vermuten, dass Geräte mit einer bestimmten Firmware-Version Fehler in Bezug auf das veröffentlichte Thema einer bestimmten Regel verursachen, sollten Sie eine detaillierte Protokollierung einrichten, um diese Probleme zu beheben. In diesem Fall können Sie eine dynamische Gruppe für alle Geräte mit dieser Firmware-Version erstellen, von der wir annehmen, dass sie als Registrierungsattribut oder in einem Geräteshadow gespeichert ist. Sie können dann eine Debug-Ebene festlegen, wobei das Protokollierungsziel als diese dynamische Dinggruppe definiert ist. Weitere Informationen zur detaillierten Protokollierung finden Sie unter Überwachung AWS IoT mithilfe von Protokollen. CloudWatch Weitere Informationen zum Angeben einer Protokollierungsebene für eine bestimmte Dinggruppe finden Sie unter Konfiguration der ressourcenspezifischen Anmeldung. AWS IoT

Erstellen einer dynamischen Objektgruppe

Mit dem Befehl CreateDynamicThingGroup können Sie eine dynamische Objektgruppe erstellen. Verwenden Sie den create-dynamic-thing-group CLI-Befehl, um eine dynamische Dinggruppe für das PercentBatteryLife 80-Szenario zu erstellen:

$ aws iot create-dynamic-thing-group --thing-group-name "80PercentBatteryLife" --query-string "attributes.batterylife80"
Anmerkung

Verwenden Sie in Ihren dynamischen Dinggruppennamen keine personenbezogenen Daten.

Der CreateDynamicThingGroup Befehl gibt eine Antwort zurück. Die Antwort enthält den Indexnamen, die Abfragezeichenfolge, die Abfrageversion, den Namen der Dinggruppe, die Dinggruppen-ID und den Amazon-Ressourcennamen (ARN) Ihrer Dinggruppe:

{ "indexName": "AWS_Things", "queryVersion": "2017-09-30", "thingGroupName": "80PercentBatteryLife", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/80PercentBatteryLife", "queryString": "attributes.batterylife80\n", "thingGroupId": "abcdefgh12345678ijklmnop12345678qrstuvwx" }

Die Erstellung dynamischer Dinggruppen erfolgt nicht auf einmal. Der Backfillvorgang für die dynamische Objektgruppe nimmt einige Zeit in Anspruch. Wenn Sie eine dynamische Dinggruppe erstellen, wird der Status der Gruppe auf gesetztBUILDING. Wenn der Backfillvorgang abgeschlossen ist, wechselt der Status zu ACTIVE. Verwenden Sie den Befehl Group, um den Status Ihrer dynamischen DescribeThingDinggruppe zu überprüfen.

Beschreiben einer dynamischen Objektgruppe

Mit dem Befehl DescribeThingGroup können Sie Informationen zu einer dynamischen Objektgruppe abrufen:

$ aws iot describe-thing-group --thing-group-name "80PercentBatteryLife"

Der Befehl DescribeThingGroup gibt Informationen zur angegebenen Gruppe zurück:

{ "status": "ACTIVE", "indexName": "AWS_Things", "thingGroupName": "80PercentBatteryLife", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/80PercentBatteryLife", "queryString": "attributes.batterylife80\n", "version": 1, "thingGroupMetadata": { "creationDate": 1548716921.289 }, "thingGroupProperties": {}, "queryVersion": "2017-09-30", "thingGroupId": "84dd9b5b-2b98-4c65-84e4-be0e1ecf4fd8" }

Wenn die Ausführung DescribeThingGroup auf einer dynamischen Dinggruppe ausgeführt wird, werden Attribute zurückgegeben, die für die dynamischen Dinggruppen spezifisch sind. Beispiele für Rückgabeattribute sind QueryString und Status.

Der Status einer dynamischen Objektgruppe kann die folgenden Werte haben:

ACTIVE

Die dynamische Objektgruppe ist einsatzbereit.

BUILDING

Die dynamische Objektgruppe wird erstellt, und die Mitgliedschaft wird bearbeitet.

REBUILDING

Die Mitgliedschaft der dynamischen Objektgruppe wird aktualisiert, nach der Anpassung Suchabfrage der Gruppe.

Anmerkung

Nachdem Sie eine dynamische Dinggruppe erstellt haben, verwenden Sie sie unabhängig von ihrem Status. Nur dynamische Objektgruppen mit dem Status ACTIVE enthalten alle Objekte, die der Suchabfrage für diese dynamische Objektgruppe entsprechen. Dynamische Objektgruppen mit den Status BUILDING und REBUILDING enthalten möglicherweise nicht alle Objekte, die der Suchabfrage entsprechen.

Aktualisieren einer dynamischen Objektgruppe

Verwenden Sie den Befehl UpdateDynamicThingGroup, um die Attribute einer dynamischen Objektgruppe zu aktualisieren, einschließlich der Suchabfrage der Gruppe: Der folgende Befehl aktualisiert zwei Attribute. Eines ist die Beschreibung der Dinggruppe und das andere ist die Abfragezeichenfolge, mit der die Mitgliedschaftskriterien auf Akkulaufzeit > 85 geändert werden:

$ aws iot update-dynamic-thing-group --thing-group-name "80PercentBatteryLife" --thing-group-properties "thingGroupDescription=\"This thing group contains devices with a battery life greater than 85 percent.\"" --query-string "attributes.batterylife85"

Der UpdateDynamicThingGroup Befehl gibt eine Antwort zurück, die die Versionsnummer der Gruppe nach der Aktualisierung enthält:

{ "version": 2 }

Die Aktualisierung einer dynamischen Dinggruppe erfolgt nicht sofort. Der Backfillvorgang für die dynamische Objektgruppe nimmt einige Zeit in Anspruch. Wenn Sie eine dynamische Dinggruppe aktualisieren, ändert sich der Status der Gruppe in, REBUILDING während die Gruppe ihre Mitgliedschaft aktualisiert. Wenn der Backfillvorgang abgeschlossen ist, wechselt der Status zu ACTIVE. Verwenden Sie den Befehl Group, um den Status Ihrer dynamischen DescribeThingDinggruppe zu überprüfen.

Löschen einer dynamischen Objektgruppe

Mit dem Befehl DeleteDynamicThingGroup können Sie eine dynamische Objektgruppe löschen:

$ aws iot delete-dynamic-thing-group --thing-group-name "80PercentBatteryLife"

Der Befehl DeleteDynamicThingGroup erzeugt keine Ausgabe.

Befehle, die zeigen, zu welchen Gruppen ein Objekt gehört (z. B. ListGroupsForThing) zeigen möglicherweise weiterhin die Gruppe an, während Datensätze in der Cloud aktualisiert werden.

Einschränkungen dynamischer und statischer Dinggruppen

Dynamische Dinggruppen und statische Dinggruppen haben die folgenden Einschränkungen:

  • Die Anzahl der Attribute, die eine Dinggruppe haben kann, ist begrenzt.

  • Die Anzahl der Gruppen, zu denen ein Objekt gehören kann, ist begrenzt.

  • Sie können Dinggruppen nicht umbenennen.

  • Namen der Objektgruppen dürfen keine internationale Zeichen enthalten, z. B. û, é und ñ.

Einschränkungen dynamischer Dinggruppen

Für dynamische Dinggruppen gelten die folgenden Einschränkungen:

-Flottenindizierung

Wenn der Flottenindexdienst aktiviert ist, können Sie Suchanfragen auf Ihrer Geräteflotte durchführen. Sie können dynamische Dinggruppen erstellen und verwalten, nachdem das Auffüllen der Flottenindizierung abgeschlossen ist. Die Fertigstellungszeit für den Backfill-Prozess hängt direkt von der Größe Ihrer Geräteflotte ab, die bei der registriert ist. AWS Cloud Nachdem Sie den Flottenindizierungsservice für dynamische Objektgruppen aktiviert haben, können Sie ihn erst wieder deaktivieren, wenn Sie alle Ihre dynamischen Objektgruppen gelöscht haben.

Anmerkung

Wenn Sie über die Berechtigungen verfügen, den Flottenindex abzufragen, können Sie auf Daten zu Objekten über die gesamte Flotte hinweg zugreifen.

Die Anzahl der dynamischen Objektgruppen ist begrenzt

Die Anzahl der dynamischen Dinggruppen ist begrenzt.

Erfolgreiche Befehle können Fehler protokollieren

Wenn Sie eine dynamische Dinggruppe erstellen oder aktualisieren, ist es möglich, dass einige Dinge in eine dynamische Dinggruppe aufgenommen werden können, aber sie werden dieser nicht hinzugefügt. Dieses Szenario führt dazu, dass ein Befehl zum Erstellen oder Aktualisieren erfolgreich ausgeführt wird, während ein Fehler protokolliert und eine Metrik generiert wird. AddThingToDynamicThingGroupsFailed Eine einzelne Metrik kann mehrere Protokolleinträge darstellen.

Ein Fehlerprotokolleintrag im CloudWatch Protokoll wird erstellt, wenn Folgendes eintritt:

  • Ein geeignetes Ding kann keiner dynamischen Dinggruppe hinzugefügt werden.

  • Ein Ding wird aus einer dynamischen Dinggruppe entfernt, um es einer anderen Gruppe hinzuzufügen.

Wenn ein Ding für das Hinzufügen zu einer dynamischen Dinggruppe in Frage kommt, sollten Sie Folgendes beachten:

  • Ist das Objekt schon in der maximalen Anzahl von Gruppen enthalten? (Weitere Informationen finden Sie unter Limits).

    • NEIN: Das Objekt wird der dynamischen Objektgruppe hinzugefügt.

    • JA: Gehört das Objekt dynamischen Objektgruppen an?

      • NEIN: Das Objekt kann nicht zu der dynamischen Objektgruppe hinzugefügt werden, ein Fehler wird protokolliert und eine AddThingToDynamicThingGroupsFailed Metrik wird generiert.

      • JA: Ist die dynamische Objektgruppe, in die das Objekt aufgenommen werden soll, älter als jede dynamische Objektgruppe, der das Objekt bereits angehört?

        • NEIN: Das Objekt kann nicht zu der dynamischen Objektgruppe hinzugefügt werden, ein Fehler wird protokolliert und eine AddThingToDynamicThingGroupsFailed Metrik wird generiert.

        • JA: Entfernen Sie das Ding aus der neuesten dynamischen Dinggruppe, protokollieren Sie einen Fehler und fügen Sie das Ding der dynamischen Dinggruppe hinzu. Dies erzeugt einen Fehler und es wird eine AddThingToDynamicThingGroupsFailed Metrik für die dynamische Objektgruppe generiert, aus der das Objekt entfernt wurde.

Wenn ein Ding in einer dynamischen Dinggruppe die Suchabfrage nicht mehr erfüllt, wird das Ding aus der dynamischen Dinggruppe entfernt. Ebenso wird ein Ding, das aktualisiert wird, um die Suchabfrage einer dynamischen Dinggruppe zu erfüllen, der Gruppe hinzugefügt, wie zuvor beschrieben. Diese Hinzufügungen und Entfernungen sind normal und verursachen keine Fehlerprotokolleinträge.

Bei Aktivierung von overrideDynamicGroups haben statische Gruppen Vorrang vor dynamischen Gruppen

Die Anzahl der Gruppen, zu denen ein Objekt gehören kann, ist begrenzt. Wenn Sie die Befehle AddThingToThingGruppe oder UpdateThingGroupsForDing verwenden, um die Dingmitgliedschaft zu aktualisieren, wird durch das Hinzufügen des --overrideDynamicGroups Parameters statischen Dinggruppen Vorrang vor dynamischen Dinggruppen eingeräumt.

Wenn Sie einer statischen Dinggruppe ein Ding hinzufügen, sollten Sie Folgendes beachten:

  • Gehört das Objekt bereits der maximalen Anzahl von Gruppen an?

    • NEIN: Das Objekt wird der statischen Objektgruppe hinzugefügt.

    • JA: Ist das Objekt in dynamischen Gruppen enthalten?

      • NEIN: Das Objekt kann nicht zu der Objektgruppe hinzugefügt werden. Der Befehl löst eine Ausnahme aus.

      • JA: Wurde --overrideDynamicGroups aktiviert?

        • NEIN: Das Objekt kann nicht zu der Objektgruppe hinzugefügt werden. Der Befehl löst eine Ausnahme aus.

        • JA: Das Objekt wird aus der zuletzt erstellten dynamischen Objektgruppe entfernt, ein Fehler wird protokolliert und es wird eine AddThingToDynamicThingGroupsFailed Metrik für die dynamische Objektgruppe generiert, aus der das Objekt entfernt wurde. Anschließend wird das Objekt der statischen Objektgruppe hinzugefügt.

Ältere dynamische Objektgruppen haben Vorrang vor neueren.

Die Anzahl der Gruppen, zu denen ein Objekt gehören kann, ist begrenzt. Wenn durch einen Erstellungs- oder Aktualisierungsvorgang zusätzliche Gruppenberechtigungen für ein Ding geschaffen werden und das Ding sein Gruppenlimit erreicht hat, kann es aus einer anderen dynamischen Dinggruppe entfernt werden, um dieses Hinzufügen zu ermöglichen. Wenn Sie mehr Informationen wünschen, wie dies geschieht, beachten Sie die Beispiele unter Erfolgreiche Befehle können Fehler protokollieren und Bei Aktivierung von overrideDynamicGroups haben statische Gruppen Vorrang vor dynamischen Gruppen.

Wenn ein Ding aus einer dynamischen Dinggruppe entfernt wird, wird ein Fehler protokolliert und ein Ereignis ausgelöst.

Sie können keine Richtlinien auf dynamische Objektgruppen anwenden.

Wenn Sie versuchen, eine Richtlinie auf eine dynamische Objektgruppe anzuwenden, wird eine Ausnahme generiert.

Die Mitgliedschaft in dynamischen Objektgruppen ist letztlich konsistent.

Nur der letzte Status eines Geräts wird für die Registrierung evaluiert. Zwischenzustände können bei schneller Aktualisierung der Zustände übersprungen werden. Vermeiden Sie es, eine Regel oder einen Job einer dynamischen Dinggruppe zuzuordnen, deren Mitgliedschaft von einem Zwischenstatus abhängt.