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.
Befehle erstellen und verwalten
Sie können die AWS IoT Device Management Befehlsfunktion verwenden, um entweder wiederverwendbare Fernaktionen zu konfigurieren oder einmalige, sofortige Anweisungen an Ihre Geräte zu senden. In den folgenden Abschnitten erfahren Sie, wie Sie Befehle von der AWS IoT Konsole aus und mithilfe der erstellen und verwalten können AWS CLI.
Befehlsoperationen erstellen und verwalten
Erstellen Sie eine Befehlsressource
Wenn Sie einen Befehl erstellen, müssen Sie die folgenden Informationen angeben.
-
Allgemeine Informationen
Wenn Sie einen Befehl erstellen, müssen Sie eine Befehls-ID angeben. Dabei handelt es sich um eine eindeutige Kennung, anhand derer Sie den Befehl identifizieren können, wenn Sie ihn auf dem Zielgerät ausführen möchten. Optional können Sie auch einen Anzeigenamen, eine Beschreibung und Tags angeben, um Ihnen die Verwaltung des Befehls zu erleichtern.
-
Nutzlast
Sie müssen auch eine Payload angeben, die die Aktionen definiert, die das Gerät ausführen muss. Es ist zwar optional, wir empfehlen jedoch, den Payload-Formattyp anzugeben, damit das Gerät die Payload korrekt interpretiert.
Die reservierten Themen zu Befehlen verwenden ein Format, das vom Typ des Payload-Formats abhängt.
-
Wenn Sie den Payload-Inhaltstyp
application/json
oder angebenapplication/cbor
, lautet das Anforderungsthema wie folgt.$aws/commands/
<devices>
/<DeviceID>
/executions/+/request/<PayloadFormat>
-
Wenn Sie einen anderen Payload-Inhaltstyp als
application/json
oder angebenapplication/cbor
, oder wenn Sie den Payload-Formattyp nicht angeben, lautet das Anforderungsthema wie folgt. In diesem Fall wird das Payload-Format in den MQTT Nachrichtenheader aufgenommen.$aws/commands/
<devices>
/<DeviceID>
/executions/+/request
Das Antwortthema des Befehls gibt ein Format zurück, das den Payload-Formattyp verwendet json
oder von diesem cbor
unabhängig ist. Das Antwortthema verwendet das folgende Format, wobei der Wert json
oder <PayloadFormat>
cbor
angegeben werden muss.
$aws/commands/
<devices>
/<DeviceID>
/executions/<ExecutionId>
/response/<PayloadFormat>
In den folgenden Abschnitten erfahren Sie, was beim Format der Befehlspayload zu beachten ist und wie Sie Befehle von der Konsole aus erstellen.
Format der Befehls-Payload
Die Nutzlast kann ein beliebiges Format Ihrer Wahl verwenden. Die maximale Größe der Payload darf 32 KB nicht überschreiten. Um sicherzustellen, dass das Gerät die Payload sicher und korrekt interpretieren kann, empfehlen wir Ihnen, den Payload-Formattyp anzugeben.
Sie geben den Payload-Formattyp mithilfe des type/subtype
Formats an, z. B. oder. application/json
application/cbor
Standardmäßig wird es als application/octet-stream
festgelegt. Informationen zu Payload-Formaten, die Sie angeben können, finden Sie unter Allgemeine MIME Typen
Wie erstelle ich einen Befehl (Konsole)
Um einen Befehl von der Konsole aus zu erstellen, rufen Sie den Command Hub
-
Um eine neue Befehlsressource zu erstellen, wählen Sie Befehl erstellen.
-
Geben Sie eine eindeutige Befehls-ID an, um den Befehl zu identifizieren, den Sie auf dem Zielgerät ausführen möchten.
-
(Optional) Geben Sie einen optionalen Anzeigenamen, eine Beschreibung und beliebige Name-Wert-Paare als Tags für Ihren Befehl an.
-
Laden Sie die Payload-Datei aus Ihrem lokalen Speicher hoch, die die Aktionen enthält, die das Gerät ausführen muss. Es ist zwar optional, wir empfehlen jedoch, den Payload-Formattyp anzugeben, damit das Gerät die Datei korrekt interpretiert und die Anweisungen verarbeitet.
-
Wählen Sie den Befehl Erstellen.
In diesem Abschnitt werden die API Operation auf der HTTP Steuerungsebene und der entsprechende AWS CLI Befehl beschrieben create-command
, den Sie ausführen können, um eine Befehlsressource zu erstellen. CreateCommand
Payload des Befehls
Bei der Erstellung des Befehls müssen Sie eine Payload angeben. Die von Ihnen bereitgestellte Nutzlast ist Base64-codiert. Wenn Ihre Geräte den Befehl empfangen, kann die geräteseitige Logik die Nutzlast verarbeiten und die angegebenen Aktionen ausführen. Um sicherzustellen, dass Ihre Geräte den Befehl und die Payload korrekt empfangen, empfehlen wir Ihnen, den Payload-Inhaltstyp anzugeben.
Anmerkung
Nachdem Sie den Befehl erstellt haben, können Sie die Payload nicht mehr ändern. Um die Payload zu ändern, müssen Sie einen neuen Befehl erstellen.
Beispiel für eine Richtlinie IAM
Bevor Sie diesen API Vorgang verwenden, stellen Sie sicher, dass Ihre IAM Richtlinie Sie autorisiert, diese Aktion auf dem Gerät durchzuführen. Das folgende Beispiel zeigt eine IAM Richtlinie, die dem Benutzer die Erlaubnis erteilt, die CreateCommand
Aktion auszuführen.
Ersetzen Sie in diesem Beispiel:
-
mit Ihrem AWS-Region, wie zum Beispielregion
.ap-south-1
-
mit deiner AWS-Konto Nummer, wieaccount-id
.123456789012
-
mit einer eindeutigen Kennung für Ihre AWS IoT Befehls-ID, z.command-id
B. Wenn Sie mehr als einen Befehl senden möchten, können Sie diese Befehle in der IAM Richtlinie im Abschnitt Ressource angeben.LockDoor
{ "Version": "2012-10-17", "Statement": { "Action": "iot:CreateCommand", "Effect": "Allow", "Resource": "arn:aws:iot:
<region>
:<account_id>
:command/command-id
" } }
Beispiel für einen Befehl erstellen
Das folgende Beispiel zeigt, wie Sie einen Befehl erstellen können. Ersetzen Sie je nach Anwendung:
-
mit einer eindeutigen Kennung für den Befehl. Um beispielsweise die Dokumentenhistorie Ihres Hauses zu sperren, können Sie Folgendes angeben:<command-id>
Wir empfehlen Ihnen, UUID zu verwenden. Sie können auch alphanumerische Zeichen, „-“ und „_“, verwenden.LockDoor
-
(Optional)
und.<display-name>
Dabei handelt es sich um optionale Felder, die Sie verwenden können, um einen benutzerfreundlichen Namen und eine aussagekräftige Beschreibung für den Befehl anzugeben, z. B.<description>
Lock the doors of my home
-
namespace
, mit denen Sie den Namespace des Befehls angeben können. Das muss es sein.AWS-IoT
-
payload
enthält Informationen über die Payload, die Sie bei der Ausführung des Befehls verwenden möchten, und deren Inhaltstyp.
aws iot create-command \ --command-id
<command-id>
\ --display-name\ --description
<display-name>
<description>
\ --namespace AWS-IoT \ --payload '{"content":"eyAibWVzc2FnZSI6ICJIZWxsbyBJb1QiIH0="
,"contentType":"application/json"}'
Die Ausführung dieses Befehls generiert eine Antwort, die die ID und ARN (Amazon-Ressourcenname) des Befehls enthält. Wenn Sie den
Befehl beispielsweise bei der Erstellung angegeben haben, zeigt das Folgende ein Beispiel für die Ausgabe der Ausführung des Befehls.LockDoor
{ "commandId": "LockDoor", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/LockDoor" }
Ruft Informationen zu einem Befehl ab
Nachdem Sie einen Befehl erstellt haben, können Sie Informationen dazu von der AWS IoT Konsole abrufen und den verwenden AWS CLI. Sie können die folgenden Informationen abrufen.
-
Die Befehls-ID, der Amazon-Ressourcenname (ARN), ein beliebiger Anzeigename und eine Beschreibung, die Sie für den Befehl angegeben haben.
-
Der Befehlsstatus, der angibt, ob ein Befehl auf dem Zielgerät ausgeführt werden kann oder ob er veraltet oder gelöscht ist.
-
Die von Ihnen bereitgestellte Payload und ihr Formattyp.
-
Die Uhrzeit, zu der der Befehl erstellt und zuletzt aktualisiert wurde.
Um einen Befehl von der Konsole abzurufen, gehen Sie zum Command Hub
Zusätzlich zu den Befehlsdetails können Sie den Befehlsverlauf einsehen, der Informationen über die Ausführung des Befehls auf dem Zielgerät enthält. Nachdem Sie diesen Befehl auf dem Gerät ausgeführt haben, finden Sie auf dieser Registerkarte Informationen zu den Ausführungen.
Verwenden Sie die API Operation auf der GetCommand
HTTPSteuerungsebene oder den get-command
AWS CLI Befehl, um Informationen über eine Befehlsressource abzurufen. Sie müssen den Befehl bereits mit der CreateCommand
API Anfrage oder dem erstellt haben create-command
CLI.
Beispiel für eine IAM Richtlinie
Bevor Sie diesen API Vorgang verwenden, stellen Sie sicher, dass Ihre IAM Richtlinie Sie autorisiert, diese Aktion auf dem Gerät durchzuführen. Das folgende Beispiel zeigt eine IAM Richtlinie, die dem Benutzer die Erlaubnis erteilt, die GetCommand
Aktion auszuführen.
Ersetzen Sie in diesem Beispiel:
-
mit Ihrem AWS-Region, wie zum Beispielregion
ap-south-1
. -
mit deiner AWS-Konto Nummer, wieaccount-id
.123456789023
-
mit Ihrer AWS IoT eindeutigen Befehlskennung, z.command-id
B. Wenn Sie mehr als einen Befehl abrufen möchten, können Sie diese Befehle in der IAM Richtlinie im Abschnitt Ressource angeben.LockDoor
{ "Version": "2012-10-17", "Statement": { "Action": "iot:GetCommand", "Effect": "Allow", "Resource": "arn:aws:iot:
<region>
:<account_id>
:command/command-id
" } }
Beispiel für einen Befehl abrufen (AWS CLI)
Das folgende Beispiel zeigt Ihnen, wie Sie Informationen zu einem Befehl mit dem abrufen können get-command
AWS CLI. Ersetzen Sie je nach Anwendung
durch den Bezeichner für den Befehl, für den Sie Informationen abrufen möchten. Sie können diese Informationen der Antwort des entnehmen <command-id>
create-command
CLI.
aws iot get-command --command-id
<command-id>
Wenn Sie diesen Befehl ausführen, wird eine Antwort generiert, die Informationen über den Befehl, die Nutzlast und den Zeitpunkt der Erstellung und letzten Aktualisierung enthält. Es enthält auch Informationen, die angeben, ob ein Befehl veraltet ist oder gelöscht wird.
Der folgende Code zeigt beispielsweise eine Beispielantwort.
{ "commandId": "LockDoor", "commandArn": "arn:aws:iot:<region>:<account>:command/LockDoor", "namespace": "AWS-IoT", "payload":{ "content": "eyAibWVzc2FnZSI6ICJIZWxsbyBJb1QiIH0=", "contentType": "application/json" }, "createdAt": "2024-03-23T00:50:10.095000-07:00", "lastUpdatedAt": "2024-03-23T00:50:10.095000-07:00", "deprecated": false, "pendingDeletion": false }
Listen Sie Befehle in Ihrem auf AWS-Konto
Nachdem Sie Befehle erstellt haben, können Sie sich die Befehle ansehen, die Sie in Ihrem Konto erstellt haben. In der Liste finden Sie Informationen zu:
-
Die Befehls-ID und alle Anzeigenamen, die Sie für die Befehle angegeben haben.
-
Der Amazon-Ressourcenname (ARN) der Befehle.
-
Der Befehlsstatus, der angibt, ob die Befehle für die Ausführung auf dem Zielgerät verfügbar sind oder ob sie veraltet sind.
Anmerkung
In der Liste wird nicht angezeigt, welche aus Ihrem Konto gelöscht werden. Wenn die Befehle noch nicht gelöscht werden müssen, können Sie die Details zu diesen Befehlen immer noch anhand ihrer Befehls-ID anzeigen.
-
Der Zeitpunkt, zu dem die Befehle erstellt und zuletzt aktualisiert wurden.
In der AWS IoT Konsole finden Sie die Liste der Befehle, die Sie erstellt haben, und deren Details, indem Sie zum Command Hub
Um die Befehle aufzulisten, die Sie erstellt haben, verwenden Sie die ListCommands
APIOperation oder die list-commands
CLI.
Beispiel für eine IAM Richtlinie
Bevor Sie diesen API Vorgang verwenden, stellen Sie sicher, dass Ihre IAM Richtlinie Sie autorisiert, diese Aktion auf dem Gerät durchzuführen. Das folgende Beispiel zeigt eine IAM Richtlinie, die dem Benutzer die Erlaubnis erteilt, die ListCommands
Aktion auszuführen.
Ersetzen Sie in diesem Beispiel:
-
mit Ihrem AWS-Region, wie zum Beispielregion
ap-south-1
. -
mit deiner AWS-Konto Nummer, wieaccount-id
.123456789012
{ "Version": "2012-10-17", "Statement": { "Action": "iot:ListCommands", "Effect": "Allow", "Resource": "arn:aws:iot:
<region>
:<account_id>
:command/*" } }
Führen Sie Befehle in Ihrem Kontobeispiel auf
Der folgende Befehl zeigt, wie Sie Befehle in Ihrem Konto auflisten können.
aws iot list-commands --namespace "AWS-IoT"
Wenn Sie diesen Befehl ausführen, wird eine Antwort generiert, die eine Liste von Befehlen enthält, die Sie erstellt haben, sowie den Zeitpunkt, zu dem die Befehle erstellt wurden und wann sie zuletzt aktualisiert wurden. Er stellt auch Informationen zum Befehlsstatus bereit, die angeben, ob ein Befehl veraltet ist oder auf dem Zielgerät ausgeführt werden kann. Weitere Informationen zu den verschiedenen Status und den Gründen für den Status finden Sie unter. Status der Befehlsausführung
Aktualisieren Sie eine Befehlsressource
Nachdem Sie einen Befehl erstellt haben, können Sie den Anzeigenamen und die Beschreibung des Befehls aktualisieren.
Anmerkung
Die Payload für den Befehl kann nicht aktualisiert werden. Um diese Informationen zu aktualisieren oder eine geänderte Payload zu verwenden, müssen Sie einen neuen Befehl erstellen.
Um einen Befehl von der Konsole aus zu aktualisieren, rufen Sie den Command Hub
-
Um eine vorhandene Befehlsressource zu aktualisieren, wählen Sie den Befehl aus, den Sie aktualisieren möchten, und wählen Sie dann unter Aktionen die Option Bearbeiten aus.
-
Geben Sie den Anzeigenamen und die Beschreibung an, die Sie verwenden möchten, sowie alle Name-Wert-Paare als Tags für Ihren Befehl.
-
Wählen Sie Bearbeiten, um den Befehl mit den neuen Einstellungen zu speichern.
Verwenden Sie die API Operation auf der UpdateCommand
Steuerungsebene oder die update-command
AWS CLI , um eine Befehlsressource zu aktualisieren. Damit API können Sie:
-
Bearbeiten Sie den Anzeigenamen und die Beschreibung eines Befehls, den Sie erstellt haben.
-
Verwerfen Sie eine Befehlsressource oder stellen Sie einen Befehl wieder her, der bereits veraltet ist.
IAMBeispiel für eine Richtlinie
Bevor Sie diesen API Vorgang verwenden, stellen Sie sicher, dass Ihre IAM Richtlinie Sie autorisiert, diese Aktion auf dem Gerät durchzuführen. Das folgende Beispiel zeigt eine IAM Richtlinie, die dem Benutzer die Erlaubnis erteilt, die UpdateCommand
Aktion auszuführen.
Ersetzen Sie in diesem Beispiel:
-
mit Ihrem AWS-Region, wie zum Beispielregion
ap-south-1
. -
mit deiner AWS-Konto Nummer, wieaccount-id
.123456789012
-
mit Ihrer AWS IoT eindeutigen Befehlskennung, z.command-id
B. Wenn Sie mehr als einen Befehl abrufen möchten, können Sie diese Befehle in der IAM Richtlinie im Abschnitt Ressource angeben.LockDoor
{ "Version": "2012-10-17", "Statement": { "Action": "iot:UpdateCommand", "Effect": "Allow", "Resource": "arn:aws:iot:
<region>
:<account_id>
:command/<command-id>
" } }
Informationen zu einem Befehl aktualisieren — Beispiele (AWS CLI)
Das folgende Beispiel zeigt Ihnen, wie Sie Informationen zu einem Befehl mithilfe des update-command
AWS CLI Befehls aktualisieren. Hinweise dazu, wie Sie API damit eine Befehlsressource als veraltet markieren oder wiederherstellen können, finden Sie unter. Aktualisieren Sie eine Befehlsressource (CLI)
Das Beispiel zeigt, wie Sie den Anzeigenamen und die Beschreibung eines Befehls aktualisieren können. Je nach Anwendung
ersetzen Sie ihn durch den Bezeichner für den Befehl, für den Sie Informationen abrufen möchten.<command-id>
aws iot update-command \ --command-id
<command-id>
--displayname<display-name>
\ --description<description>
Wenn Sie diesen Befehl ausführen, wird eine Antwort generiert, die die aktualisierten Informationen über den Befehl und den Zeitpunkt der letzten Aktualisierung enthält. Der folgende Code zeigt eine Beispielanforderung und -antwort für die Aktualisierung des Anzeigenamens und der Beschreibung eines Befehls, der die Klimaanlage ausschaltet.
aws iot update-command \ --command-id
<LockDoor>
\ --displayname<Secondary lock door>
\ --description<Locks doors to my home>
Die Ausführung dieses Befehls generiert die folgende Antwort.
{ "commandId": "LockDoor", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/LockDoor", "displayName": "Secondary lock door", "description": "Locks doors to my home", "lastUpdatedAt": "2024-05-09T23:15:53.899000-07:00" }
Verwerfen Sie eine Befehlsressource oder stellen Sie sie wieder her
Wenn Sie einen Befehl erstellt haben und ihn nicht mehr weiter verwenden möchten, können Sie ihn als veraltet markieren. Wenn Sie einen Befehl als veraltet markieren, werden alle ausstehenden Befehlsausführungen auf dem Zielgerät weiterlaufen, bis sie den Terminalstatus erreichen. Wenn ein Befehl als veraltet gilt und Sie ihn beispielsweise zum Senden einer neuen Befehlsausführung an das Zielgerät verwenden möchten, müssen Sie ihn wiederherstellen.
Anmerkung
Sie können einen veralteten Befehl nicht bearbeiten oder neue Ausführungen für ihn ausführen. Um neue Befehle auf dem Gerät auszuführen, müssen Sie es wiederherstellen, sodass der Befehlsstatus auf Verfügbar geändert wird.
Weitere Informationen zum Verwerfen und Wiederherstellen eines Befehls sowie zu diesbezüglichen Überlegungen finden Sie unter. Eine Befehlsressource als veraltet kennzeichnen
Löschen Sie eine Befehlsressource
Wenn Sie einen Befehl nicht mehr verwenden möchten, können Sie ihn dauerhaft aus Ihrem Konto entfernen. Wenn die Löschaktion erfolgreich ist:
-
Wenn der Befehl für eine Dauer, die länger als das maximale Timeout von 12 Stunden ist, als veraltet gilt, wird der Befehl sofort gelöscht.
-
Wenn der Befehl nicht veraltet ist oder für eine Dauer, die kürzer als das maximale Timeout ist, als veraltet gilt, befindet sich der Befehl in einem Status.
pending deletion
Er wird nach Ablauf des maximalen Timeouts von 12 Stunden automatisch aus Ihrem Konto entfernt.
Anmerkung
Der Befehl kann gelöscht werden, auch wenn noch ausstehende Befehlsausführungen vorliegen. Der Befehl befindet sich im Status „Ausstehende Löschung“ und wird automatisch aus Ihrem Konto entfernt.
Um einen Befehl von der Konsole zu löschen, rufen Sie den Command Hub
-
Wählen Sie den Befehl aus, den Sie löschen möchten, und wählen Sie dann unter Aktionen die Option Löschen aus.
-
Bestätigen Sie, dass Sie den Befehl löschen möchten, und wählen Sie dann Löschen aus.
Der Befehl wird zum Löschen markiert und nach 12 Stunden dauerhaft aus Ihrem Konto entfernt.
Verwenden Sie die API Operation auf der DeleteCommand
HTTP Steuerungsebene oder den delete-command
AWS CLI Befehl, um eine Befehlsressource zu löschen. Wenn die Löschaktion erfolgreich ist, wird ein Wert HTTP statusCode
von 204 oder 202 angezeigt, und der Befehl wird nach Ablauf der maximalen Timeoutdauer von 12 Stunden automatisch aus Ihrem Konto gelöscht. Im Fall des Status 204 bedeutet dies, dass der Befehl gelöscht wurde.
Beispiel für eine IAM Richtlinie
Bevor Sie diesen API Vorgang verwenden, stellen Sie sicher, dass Ihre IAM Richtlinie Sie autorisiert, diese Aktion auf dem Gerät durchzuführen. Das folgende Beispiel zeigt eine IAM Richtlinie, die dem Benutzer die Erlaubnis erteilt, die DeleteCommand
Aktion auszuführen.
Ersetzen Sie in diesem Beispiel:
-
mit Ihrem AWS-Region, wie zum Beispielregion
ap-south-1
. -
mit deiner AWS-Konto Nummer, wieaccount-id
.123456789012
-
mit Ihrer AWS IoT eindeutigen Befehlskennung, z.command-id
B. Wenn Sie mehr als einen Befehl abrufen möchten, können Sie diese Befehle in der IAM Richtlinie im Abschnitt Ressource angeben.LockDoor
{ "Version": "2012-10-17", "Statement": { "Action": "iot:DeleteCommand", "Effect": "Allow", "Resource": "arn:aws:iot:
<region>
:<account_id>
:command/command-id
" } }
Beispiel für einen Befehl löschen (AWS CLI)
Die folgenden Beispiele zeigen Ihnen, wie Sie einen Befehl mithilfe des delete-command
AWS CLI Befehls löschen. Je nach Anwendung
ersetzen Sie ihn durch den Bezeichner für den Befehl, den Sie löschen möchten.<command-id>
aws iot delete-command --command-id
<command-id>
Wenn die API Anfrage erfolgreich ist, generiert der Befehl den Statuscode 202 oder 204. Sie können den verwenden GetCommand
API, um zu überprüfen, ob der Befehl in Ihrem Konto nicht mehr vorhanden ist.