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.
Device MQTT Shadow-Themen
Der Device Shadow-Dienst verwendet reservierte MQTT Themen, damit Geräte und Apps die Statusinformationen für ein Gerät abrufen, aktualisieren oder löschen können (Shadow).
Das Veröffentlichen in und Abonnieren von Schattengerätethemen erfordert eine themenbasierte Autorisierung. AWS IoT
behält sich das Recht vor, der vorhandenen Themenstruktur neue Themen hinzuzufügen. Aus diesem Grund empfehlen wir, Abonnements mit Platzhaltern von Schattengeräte-Topics zu vermeiden. Vermeiden Sie es beispielsweise, Themenfilter zu abonnieren, $aws/things/thingName/shadow/#
weil die Anzahl der Themen, die diesem Themenfilter entsprechen, mit der AWS IoT Einführung neuer Schattenthemen zunehmen könnte. Beispiele für Nachrichten, die zu diesen Topics veröffentlichten wurden, finden Sie unter Interaktion mit Schatten.
Schatten können benannt oder unbenannt sein (klassisch). Die jeweils verwendeten Themen unterscheiden sich nur durch das Themenpräfix. In dieser Tabelle wird das Themenpräfix angezeigt, das von jedem Schattentyp verwendet wird.
ShadowTopicPrefix Wert |
Schattentyp |
---|---|
$aws/things/ |
Unbenannter (klassischer) Schatten |
$aws/things/ |
Benannter Schatten |
Um ein vollständiges Thema zu erstellen, wählen Sie die
für den Schattentyp aus, auf den Sie verweisen möchten, ersetzen Sie ShadowTopicPrefix
und gegebenenfalls thingName
durch die entsprechenden Werte und fügen Sie diese dann an den Themen-Stub an, wie in den folgenden Abschnitten dargestellt.shadowName
Im Folgenden werden die MQTT Themen beschrieben, die für die Interaktion mit Schatten verwendet werden.
Themen
/get
Veröffentlichen Sie eine leere Nachricht in diesem Thema, um den Geräteschatten abzurufen:
ShadowTopicPrefix
/get
AWS IoT antwortet mit einer Veröffentlichung auf entweder /get/accepted oder/update/rejected.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/get" ] } ] }
/get/accepted
AWS IoT veröffentlicht ein Antwort-Shadow-Dokument zu diesem Thema, wenn der Shadow des Geräts zurückgegeben wird:
ShadowTopicPrefix
/get/accepted
Weitere Informationen finden Sie unter Antwortstatusdokumente.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/accepted" ] } ] }
/update/rejected
AWS IoT veröffentlicht ein Fehlerantwortdokument zu diesem Thema, wenn es den Schatten des Geräts nicht zurückgeben kann:
ShadowTopicPrefix
/get/rejected
Weitere Informationen finden Sie unter Fehlerantwortdokument.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/rejected" ] }, { "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/rejected" ] } ] }
/update
Veröffentlichen Sie in diesem Thema ein Anfragestatusdokument, um den Geräteschatten zu aktualisieren:
ShadowTopicPrefix
/update
Der Nachrichtentext enthält ein partielles Anfragestatusdokument.
Ein Client, der versucht, den Status eines Geräts zu aktualisieren, würde ein JSON Anforderungsstatusdokument mit der folgenden desired
Eigenschaft senden:
{ "state": { "desired": { "color": "red", "power": "on" } } }
Ein Gerät, das seinen Shadow aktualisiert, würde ein JSON Anforderungsstatusdokument mit der folgenden reported
Eigenschaft senden:
{ "state": { "reported": { "color": "red", "power": "on" } } }
AWS IoT antwortet mit einer Veröffentlichung auf entweder /update/accepted oder/update/rejected.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/update" ] } ] }
/update/delta
AWS IoT veröffentlicht ein Antwortstatusdokument zu diesem Thema, wenn es eine Änderung für den Shadow des Geräts akzeptiert, und das Dokument mit dem Anforderungsstatus verschiedene Werte für desired
und reported
gibt an:
ShadowTopicPrefix
/update/delta
Der Nachrichtenpuffer enthält eine Antwortstatusdokument „/delta“.
Nachrichtentextdetails
-
Eine in
update/delta
veröffentlichte Nachricht umfasst nur die gewünschten Attribute, die sich zwischen dem Abschnittdesired
(Soll) und dem Abschnittreported
(gemeldet) Abschnitt unterscheiden. Sie enthält alle diese Attribute, unabhängig davon, ob diese in der Nachricht zur aktuellen Aktualisierung enthalten waren oder bereits in AWS IoT gespeichert wurden. Attribute, die sich nicht zwischen dem Abschnittdesired
(Soll) und dem Abschnittreported
(gemeldet) Abschnitt unterscheiden, sind nicht enthalten. -
Wenn sich ein Attribut im Abschnitt
reported
(gemeldet) befindet, jedoch kein Pendant im Abschnittdesired
(Soll), dann ist es nicht enthalten. -
Ist ein Attribut im Abschnitt
desired
(Soll) vorhanden, besitzt jedoch kein Pendant im Abschnittreported
(gemeldet), dann ist es enthalten. -
Wenn ein Attribut aus dem Abschnitt
reported
(gemeldet) gelöscht wurde, aber sich nach wie vor im Abschnittdesired
(Soll) befindet, dann ist es enthalten.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/delta" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/delta" ] } ] }
/update/accepted
AWS IoT veröffentlicht ein Antwortstatusdokument zu diesem Thema, wenn eine Änderung für den Shadow des Geräts akzeptiert wird:
ShadowTopicPrefix
/update/accepted
Der Nachrichtenpuffer enthält eine Antwortstatusdokument „/accepted“.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/accepted" ] } ] }
/update/documents
AWS IoT veröffentlicht ein Statusdokument zu diesem Thema, wenn eine Aktualisierung des Shadows erfolgreich durchgeführt wurde:
ShadowTopicPrefix
/update/documents
Der Nachrichtentext enthält eine /Dokumente, Antwortstatusdokument.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/documents" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/documents" ] } ] }
/update/rejected
AWS IoT veröffentlicht ein Fehlerantwortdokument zu diesem Thema, wenn eine Änderung für den Shadow des Geräts abgelehnt wird:
ShadowTopicPrefix
/update/rejected
Der Nachrichtentext enthält eine Fehlerantwortdokument.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/rejected" ] } ] }
/delete
Um einen Geräteschatten zu löschen, veröffentlichen Sie im Löschthema eine leere Nachricht.
ShadowTopicPrefix
/delete
Der Inhalt der Nachricht wird ignoriert.
Beachten Sie, dass durch das Löschen eines Shadows seine Versionsnummer nicht auf 0 zurückgesetzt wird.
AWS IoT antwortet, indem es entweder /delete/accepted oder /delete/rejected veröffentlicht.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/delete" ] } ] }
/delete/accepted
AWS IoT veröffentlicht eine Nachricht zu diesem Thema, wenn der Schatten eines Geräts gelöscht wird:
ShadowTopicPrefix
/delete/accepted
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/accepted" ] } ] }
/delete/rejected
AWS IoT veröffentlicht ein Dokument mit einer Fehlermeldung zu diesem Thema, wenn der Schatten des Geräts nicht gelöscht werden kann:
ShadowTopicPrefix
/delete/rejected
Der Nachrichtentext enthält eine Fehlerantwortdokument.
Beispielrichtline
Im Folgenden finden Sie ein Beispiel für die erforderliche Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/rejected" ] } ] }