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.
Arbeitsablauf für Befehle auf hoher Ebene
Dieser Workflow zeigt, wie Geräte mit AWS IoT Device Management Befehlen interagieren. Alle HTTP-API-Anfragen verwenden Sigv4-Anmeldeinformationen zum Signieren.
Workflow-Übersicht
Erstellen und Verwalten von Befehlen
Gehen Sie wie folgt vor, um Befehle für Ihre Geräte zu erstellen und zu verwalten.
-
Erstellen Sie eine Befehlsressource
Erstellen Sie einen Befehl über den Command Hub
oder mithilfe der CreateCommandAPI. -
Geben Sie die Nutzlast an
Stellen Sie eine Nutzlast in einem beliebigen Format bereit. Geben Sie den Inhaltstyp an, um eine korrekte Interpretation durch das Gerät sicherzustellen.
Bei dynamischen Befehlen mit Payload-Vorlagen wird die endgültige Payload zur Laufzeit anhand der von Ihnen angegebenen Parameter generiert. Vorlagen unterstützen nur das JSON-Format, aber die generierte Nutzlast kann als JSON oder CBOR gesendet werden.
-
(Optional) Verwalte die erstellten Befehle
Aktualisieren Sie den Anzeigenamen und die Beschreibung nach der Erstellung. Markieren Sie Befehle als veraltet, wenn sie nicht mehr benötigt werden, oder löschen Sie sie dauerhaft. Um die Payload-Informationen zu ändern, erstellen Sie einen neuen Befehl.
Wählen Sie das Zielgerät für Ihre Befehle und abonnieren Sie MQTT-Themen
Wählen Sie Ihr Zielgerät und konfigurieren Sie MQTT-Themen für den Empfang von Befehlen und das Veröffentlichen von Antworten.
-
Wählen Sie das Zielgerät für Ihren Befehl
Wählen Sie ein Zielgerät aus, um den Befehl zu empfangen und auszuführen. Verwenden Sie einen Ding-Namen für registrierte Geräte oder eine Client-ID für nicht registrierte Geräte. Weitere Informationen finden Sie unter Überlegungen zum Zielgerät.
-
Konfigurieren Sie die AWS IoT Geräterichtlinie
Konfigurieren Sie eine IAM-Richtlinie, die Berechtigungen zum Empfangen von Ausführungen und zum Veröffentlichen von Updates gewährt. Beispiele Beispiel einer IAM-Richtlinie für Richtlinien finden Sie unter.
-
Stellen Sie eine MQTT-Verbindung her
Verbinden Sie Geräte mit dem Message Broker und abonnieren Sie Request and Response Topics. Geräte benötigen eine
iot:ConnectGenehmigung. Finden Sie Ihren Datenebenen-Endpunkt mit demDescribeEndpointAPI- oderdescribe-endpointCLI-Befehl:aws iot describe-endpoint --endpoint-type iot:Data-ATSWenn Sie diesen Befehl ausführen, wird der kontospezifische Endpunkt der Datenebene zurückgegeben, wie unten gezeigt.
account-specific-prefix.iot.region.amazonaws.com -
Abonnieren Sie die Themen zu Befehlen
Abonnieren Sie das Thema „Befehlsanfrage“. Wenn Sie eine Ausführung starten, veröffentlicht der Message Broker die Payload zu diesem Thema. Ihr Gerät empfängt und verarbeitet den Befehl.
(Optional) Abonnieren Sie die Antwortthemen (
acceptedoderrejected), um eine Bestätigung zu erhalten, ob der Cloud-Dienst die Geräteantwort akzeptiert oder abgelehnt hat.Ersetzen Sie in diesem Beispiel:
-
mit<device>thingoderclientabhängig davon, ob das Gerät, auf das Sie abzielen, als IoT-Ding registriert oder als MQTT-Client spezifiziert wurde. -
mit der eindeutigen Kennung Ihres Zielgeräts. Diese ID kann die eindeutige MQTT-Client-ID oder ein Ding-Name sein.<DeviceID>
Anmerkung
Wenn der Payload-Typ nicht JSON oder CBOR ist, ist das
<PayloadFormat>Feld möglicherweise nicht im Thema der Befehlsanfrage vorhanden. Um das Payload-Format abzurufen, empfehlen wir, die Formatinformationen aus den MQTT-Nachrichtenkopfzeilen abzurufen. MQTT5 Weitere Informationen finden Sie unter Themen zu Befehlen.$aws/commands/<devices>/<DeviceID>/executions/+/request/<PayloadFormat>$aws/commands/<devices>/<DeviceID>/executions/+/response/accepted/<PayloadFormat>$aws/commands/<devices>/<DeviceID>/executions/+/response/rejected/<PayloadFormat> -
Starten und überwachen Sie die Befehlsausführungen für Ihr Zielgerät
Nachdem Sie die Befehle erstellt und die Ziele für den Befehl angegeben haben, können Sie die Ausführung auf dem Zielgerät starten, indem Sie die folgenden Schritte ausführen.
-
Starten Sie die Befehlsausführung auf dem Zielgerät
Starten Sie die Ausführung vom Command Hub
aus oder verwenden Sie die StartCommandExecutionAPI mit Ihrem kontospezifischen Endpunkt. Verwenden Sie esiot:Data-ATSfür Dual-Stack (IPv4/IPv6) oderiot:Jobsnur für. IPv4Die API veröffentlicht den Payload im Thema Commands Request.
Anmerkung
Wenn das Gerät offline ist und persistente MQTT-Sitzungen verwendet, wartet der Befehl beim Message Broker. Wenn das Gerät vor dem Timeout wieder eine Verbindung herstellt, kann es den Befehl verarbeiten und Ergebnisse veröffentlichen. Wenn das Timeout abläuft, wird das Timeout bei der Ausführung überschritten und die Nutzdaten werden verworfen.
-
Aktualisieren Sie das Ergebnis der Befehlsausführung
Das Gerät empfängt die Payload, verarbeitet den Befehl, führt die angegebenen Aktionen aus und veröffentlicht die Ergebnisse mithilfe einer
UpdateCommandExecutionMQTT-basierten API im Antwortthema „Befehle“. Wenn das Gerät akzeptierte und abgelehnte Themen abonniert hat, erhält es eine Bestätigung, ob der Cloud-Dienst die Antwort akzeptiert oder abgelehnt hat.Je nachdem, was Sie im Thema der Anfrage angegeben haben,
<devices>kann es sich entweder um Dinge oder Clients handeln, und es<DeviceID>kann sich AWS IoT dabei um Ihren Dingnamen oder die MQTT-Client-ID handeln.Anmerkung
Das
<PayloadFormat>kann im Antwortthema der Befehle nur JSON oder CBOR sein.$aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat> -
(Optional) Rufen Sie das Ergebnis der Befehlsausführung ab
Rufen Sie die Ausführungsergebnisse von der AWS IoT Konsole ab oder verwenden Sie
GetCommandExecution. Das Gerät muss die Ergebnisse unter dem Thema Commands Response veröffentlichen, um aktuelle Informationen zu erhalten. Sehen Sie sich zusätzliche Details an, einschließlich Uhrzeit der letzten Aktualisierung, Ergebnis und Abschlusszeit.
(Optional) Aktivieren Sie Benachrichtigungen für Befehlsereignisse
Abonnieren Sie Befehlsereignisse für Benachrichtigungen, wenn sich der Ausführungsstatus ändert.
-
Erstellen einer Themenregel
Abonnieren Sie das Thema Befehlsereignisse für Benachrichtigungen über Statusänderungen. Erstellen Sie eine Themenregel, um Gerätedaten mithilfe der AWS IoT Konsole oder Eine AWS IoT Regel erstellen an andere AWS IoT Dienste wie AWS Lambda Amazon SQS und AWS Step Functions weiterzuleiten.
Ersetzen Sie in diesem Beispiel
durch die ID des Befehls, für den Sie Benachrichtigungen erhalten möchten, und<CommandID>durch den Status der Befehlsausführung.<CommandExecutionStatus>$aws/events/commandExecution/<CommandID>/<CommandExecutionStatus>Anmerkung
Um Benachrichtigungen für alle Befehle und den Status der Befehlsausführung zu erhalten, können Sie Platzhalterzeichen verwenden und das folgende Thema abonnieren.
$aws/events/commandExecution/+/# -
Befehlsereignisse empfangen und verarbeiten
Verwalten Sie Push-Benachrichtigungen für Befehle und erstellen Sie Anwendungen mithilfe der abonnierten Ereignisse.
Der folgende Code zeigt eine Beispiel-Payload für die Benachrichtigungen über Befehlsereignisse, die Sie erhalten werden.
{ "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554", "status":"FAILED", "statusReason": { "reasonCode": "DEVICE_TOO_BUSY", "reasonDescription": "" }, "eventType": "COMMAND_EXECUTION", "commandArn":"arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086", "targetArn":"arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd", "timestamp":1717708862107}