

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.

# Beispiel: Verwendung von Befehlen zur Steuerung eines Fahrzeuglenkmodus (AWS CLI)
<a name="remote-command-tutorial"></a>

**Wichtig**  
Der Zugriff auf bestimmte AWS FleetWise IoT-Funktionen ist derzeit gesperrt. Weitere Informationen finden Sie unter [AWS Verfügbarkeit von Regionen und Funktionen im AWS Internet der Dinge FleetWise](fleetwise-regions.md).

Das folgende Beispiel zeigt Ihnen, wie Sie die Befehlsfunktion mithilfe von verwenden AWS CLI. In diesem Beispiel wird ein AWS IoT FleetWise Fahrzeug als Zielgerät verwendet, um zu zeigen, wie Sie einen Befehl zur Fernsteuerung des Lenkmodus senden können.

**Topics**
+ [Überblick über das Beispiel für den Fahrzeuglenkmodus](#iot-remote-command-tutorial-overview)
+ [Voraussetzungen](#iot-remote-command-tutorial-prereq)
+ [IAM-Richtlinie für die Verwendung von Remote-Befehlen](#remote-command-policy)
+ [AWS IoT Befehle ausführen (AWS CLI)](#iot-remote-command-tutorial-run)
+ [Bereinigen](#remote-command-tutorial-clean)

## Überblick über das Beispiel für den Fahrzeuglenkmodus
<a name="iot-remote-command-tutorial-overview"></a>

In diesem Beispiel werden Sie:

1. Erstellen Sie eine Befehlsressource für den Vorgang, mit `create-command` AWS CLI dem Sie den Lenkmodus des Fahrzeugs ändern können.

1. Rufen Sie Informationen über den Befehl ab, z. B. den Zeitpunkt, zu dem er erstellt oder zuletzt aktualisiert wurde, mit dem `get-command` AWS CLI.

1. Senden Sie den Befehl `start-command-execution` AWS CLI mit dem Lenkmodus als obligatorischen Parameter an das Fahrzeug. Dieser wird dann auf dem Gerät ausgeführt.

1. Rufen Sie das Ergebnis der Befehlsausführung mit dem ab `get-command-execution` AWS CLI. Sie können überprüfen, wann die Ausführung abgeschlossen ist, und zusätzliche Details abrufen, z. B. das Ausführungsergebnis und die Zeit, die bis zur Ausführung des Befehls benötigt wurde.

1. Führen Sie Bereinigungsaktivitäten durch, indem Sie alle Befehle und Befehlsausführungen entfernen, die Sie nicht mehr verwenden möchten.

## Voraussetzungen
<a name="iot-remote-command-tutorial-prereq"></a>

Bevor Sie dieses Beispiel ausführen:
+ Stellen Sie Ihr AWS IoT FleetWise Fahrzeug als Objekt AWS IoT in der AWS IoT Registrierung bereit. Sie müssen Ihrem Ding auch ein Zertifikat hinzufügen und es aktivieren und Ihrem Ding eine Richtlinie beifügen. Ihr Gerät kann sich dann mit der Cloud verbinden und die Befehle ausführen. Weitere Informationen finden Sie unter [Fahrzeuge bereitstellen](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/provision-vehicles.html).
+ Erstellen Sie einen IAM-Benutzer und eine IAM-Richtlinie, die Ihnen die Erlaubnis erteilt, die API-Operationen für die Verwendung von Befehlen auszuführen, wie unter gezeigt. [IAM-Richtlinie für die Verwendung von Remote-Befehlen](#remote-command-policy)

## IAM-Richtlinie für die Verwendung von Remote-Befehlen
<a name="remote-command-policy"></a>

Die folgende Tabelle zeigt ein Beispiel für eine IAM-Richtlinie, die Zugriff auf alle API-Operationen der Steuerungsebene und der Datenebene für die Befehlsfunktion gewährt. Der Benutzer der Anwendung verfügt über die erforderlichen Berechtigungen, um alle API-Operationen für Remote-Befehle auszuführen, wie in der Tabelle dargestellt.


**API-Operation**  

| API-Aktion | Steuerung/Datenebene | Protocol (Protokoll) | Description | Ressource | 
| --- | --- | --- | --- | --- | 
| CreateCommand | Steuerebene | HTTP | Erzeugt eine Befehlsressource |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommand | Steuerebene | HTTP | Ruft Informationen über einen Befehl ab |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommand | Steuerebene | HTTP | Aktualisiert Informationen über einen Befehl oder stellt ihn als veraltet dar |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommands | Steuerebene | HTTP | Führt Befehle in Ihrem Konto auf |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommand | Steuerebene | HTTP | Löscht einen Befehl |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| StartCommandExecution | Datenebene | HTTP | Startet die Ausführung eines Befehls |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommandExecution | Datenebene | MQTT | Aktualisieren Sie die Ausführung eines Befehls |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommandExecution | Steuerebene | HTTP | Ruft Informationen über die Ausführung eines Befehls ab |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommandExecutions | Steuerebene | HTTP | Führt Befehlsausführungen in Ihrem Konto auf |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommandExecution | Steuerebene | HTTP | Löscht eine Befehlsausführung |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 

Ersetzen Sie in diesem Beispiel:
+ `us-east-1`mit deinem AWS-Region, wie`ap-south-1`.
+ `111122223333`mit deiner AWS-Konto Nummer, wie`57EXAMPLE833`.
+ `command-id``command-id1`, und `command-id2` mit Ihrer eindeutigen Befehlskennung, z. B. `LockDoor` oder`TurnOffAC`.
+ `thing-name`mit deinem AWS IoT Dingnamen, wie zum Beispiel`my_car`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iot:CreateCommand",
                "iot:GetCommand",
                "iot:ListCommands",
                "iot:UpdateCommand",
                "iot:DeleteCommand"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id1",
                "arn:aws:iot:us-east-1:111122223333:command/command-id2"
            ]
        },
        {
            "Action": [
                "iot:GetCommandExecution",
                "iot:ListCommandExecutions",
                "iot:DeleteCommandExecution"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id",
                "arn:aws:iot:us-east-1:111122223333:thing/thing-name"
            ]
        },
        {
            "Action": "iot:StartCommandExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id",
                "arn:aws:iot:us-east-1:111122223333:thing/thing-name"
            ]
        }
    ]
}
```

------

## AWS IoT Befehle ausführen (AWS CLI)
<a name="iot-remote-command-tutorial-run"></a>

Im Folgenden wird gezeigt, wie Sie Befehle ausführen und den Lenkmodus des Fahrzeugs ändern können. AWS CLI 

1. 

**Erstellen Sie eine Befehlsressource für den Betrieb im Lenkmodus**

   Erstellen Sie den Befehl, den Sie mit der `create-command` CLI an Ihr Gerät senden möchten. Geben Sie in diesem Beispiel Folgendes an:
   + `command-id` wie *`TurnOffSteeringMode`*
   + `role-arn`as `"arn:aws:iam:accountId:role/FwCommandExecutionRole"` Die `role-arn` muss angegeben werden, da es die IAM-Rolle ist, die Berechtigungen zum Erstellen und Ausführen von Befehlen auf Ihrem Fahrzeug gewährt. Weitere Informationen finden Sie unter [Erteilen Sie die AWS IoT Device Management Berechtigung zum Generieren der Payload für Befehle mit AWS IoT FleetWise](controlling-access.md#generate-command-payload).
   + `display-name`als "“ *`Turn off steering mode`*
   + `namespace`muss sein `AWS-IoT-FleetWise`
   + `mandatory-parameters`als Name-Wert-Paar, mit `name` als "*\$1actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode*" und defaultValue als `{ "S": "true" }`
**Anmerkung**  
Sie können einen Befehl auch ohne Angabe obligatorischer Parameter erstellen. Anschließend müssen Sie die Parameter angeben, die bei der Ausführung des Befehls über die `start-command-execution` CLI verwendet werden sollen. Ein Beispiel finden Sie unter [Szenarien zur Verwendung von Befehlen](remote-command-use-cases.md).
**Wichtig**  
Wenn Sie den `AWS-IoT-FleetWise` Namespace verwenden, müssen Sie sicherstellen, dass das `Name` im Rahmen von angegebene Feld das `$actuatorPath.` Präfix `mandatory-parameters` verwendet und dass das `Value` Feld den Datentyp Zeichenfolge verwendet.

   ```
   aws iot create-command \ 
       --command-id TurnOffSteeringMode \ 
       --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
       --display-name "Turn off steering mode" \ 
       --namespace AWS-IoT-FleetWise \
       --mandatory-parameters '[
         {
           "name": "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode",
           "defaultValue": { "S": "true" }
         }
       ]'
   ```

   Die folgende Ausgabe zeigt eine Beispielantwort von der CLI, wobei `ap-south-1` und Beispiele für die AWS-Konto ID AWS-Region und `123456789012` sind.

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode"
   }
   ```

   Weitere Beispiele zur Verwendung dieses Befehls finden Sie unter[Erstellen Sie eine Befehlsressource](create-manage-remote-command-cli.md#create-remote-command-cli).

1. 

**Rufen Sie Informationen über den Befehl ab**

   Führen Sie den folgenden Befehl aus, um Informationen über den Befehl abzurufen. Dabei `command-id` steht die Befehls-ID in der Ausgabe der `create-command` Operation von oben.
**Anmerkung**  
Wenn Sie mehr als einen Befehl erstellen, können Sie die `ListCommands` API verwenden, um alle Befehle in Ihrem Konto aufzulisten, und dann die `GetCommand` API verwenden, um zusätzliche Informationen zu einem bestimmten Befehl abzurufen. Weitere Informationen finden Sie unter [Befehle in Ihrem Konto auflisten](create-manage-remote-command-cli.md#list-remote-command-cli).

   ```
   aws iot get-command --command-id TurnOffSteeringMode
   ```

   Die Ausführung dieses Befehls generiert die folgende Antwort. Sie sehen den Zeitpunkt, zu dem der Befehl erstellt und zuletzt aktualisiert wurde, alle von Ihnen angegebenen Parameter und ob der Befehl für die Ausführung auf dem Gerät verfügbar ist.

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode",
       "namespace": "AWS-IoT-FleetWise",
       "mandatoryParameters":[
           {
               "name": "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode",
               "defaultValue": {"S": "true" }
           }
       ],
       "createdAt": "2024-03-23T00:50:10.095000-07:00",
       "lastUpdatedAt": "2024-03-23T00:50:10.095000-07:00",
       "deprecated": false
   }
   ```

   Weitere Beispiele zur Verwendung dieses Befehls finden Sie unter[Ruft Informationen zu einem Befehl ab](create-manage-remote-command-cli.md#get-remote-command-cli).

1. 

**Starten Sie die Befehlsausführung**

   Führen Sie den folgenden Befehl aus, um die Ausführung des Befehls zu starten. Dabei `command-arn` befindet sich der Befehl ARN in der Ausgabe der `get-command` Operation von oben. Das `target-arn` ist der ARN des Zielgeräts, für das Sie den Befehl ausführen, zum Beispiel*`myVehicle`*.

   Da Sie in diesem Beispiel bei der Erstellung des Befehls Standardwerte für die Parameter angegeben haben, kann die `start-command-execution` CLI diese Werte bei der Ausführung des Befehls verwenden. Sie können den Standardwert auch überschreiben, indem Sie bei Verwendung der CLI einen anderen Wert für die Parameter angeben.

   ```
   aws iot-data start-command-execution \    
       --command-arn arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode \
       --target-arn arn:aws:iot:ap-south-1:123456789012:thing/myVehicle
   ```

   Wenn Sie diesen Befehl ausführen, wird eine Befehlsausführungs-ID zurückgegeben. Sie können diese ID verwenden, um den Status der Befehlsausführung, die Details und den Verlauf der Befehlsausführung abzufragen.

   ```
   {
       "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542"
   }
   ```

   Weitere Beispiele zur Verwendung der CLI finden Sie unter[Senden Sie einen Befehl ()AWS CLI](send-monitor-remote-command-cli.md#send-remote-command-cli).

1. 

**Rufen Sie Informationen über die Befehlsausführung ab**

   Führen Sie den folgenden Befehl aus, um Informationen zu dem Befehl abzurufen, den Sie auf dem Zielgerät ausgeführt haben. Geben Sie den an`execution-id`, den Sie als Ausgabe des `start-command-execution` Vorgangs von oben erhalten haben, und den`target-arn`, welcher der ARN des Geräts ist, auf das Sie abzielen.
**Anmerkung**  
Um die neuesten Statusinformationen zu erhalten, müssen Ihre Geräte die aktualisierten Statusinformationen im MQTT-Antwortthema veröffentlicht haben, das für Befehle reserviert ist, die die `UpdateCommandExecution` MQTT-API verwenden. Weitere Informationen finden Sie unter [Das Ergebnis der Befehlsausführung aktualisieren](send-monitor-remote-command-cli.md#update-remote-command-execution-cli).
Wenn Sie mehr als eine Befehlsausführung starten, können Sie die `ListCommandExecutions` API verwenden, um alle Befehlsausführungen in Ihrem Konto aufzulisten, und dann die `GetCommandExecution` API verwenden, um zusätzliche Informationen über eine bestimmte Ausführung zu erhalten. Weitere Informationen finden Sie unter [Listet die Befehlsausführungen in Ihrem Konto auf](send-monitor-remote-command-cli.md#list-remote-command-execution-cli).

   ```
   aws iot get-command-execution \    
       --execution-id <"07e4b780-7eca-4ffd-b772-b76358da5542"> \ 
       --target-arn arn:aws:iot:us-east-1:<account>:thing/myVehicle
   ```

   Wenn Sie diesen Befehl ausführen, werden Informationen zur Befehlsausführung, zum Ausführungsstatus, zum Zeitpunkt des Beginns der Ausführung und zum Zeitpunkt des Abschlusses zurückgegeben. Die folgende Antwort zeigt beispielsweise, dass die Befehlsausführung auf dem Zielgerät erfolgreich war und der Steuermodus ausgeschaltet wurde.

   ```
   {
       "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode",
       "targetArn": "arn:aws:iot:ap-south-1:123456789012:thing/myVehicle",
       "result": "SUCCEEDED",
        "statusReason": {
           "reasonCode": "65536",
           "reasonDescription": "SUCCESS"
       },
       "result": {
           "KeyName": {
               "S": "",
               "B": true,
               "BIN": null
           }
       },
       "createdAt": "2024-03-23T00:50:10.095000-07:00",
       "completedAt": "2024-03-23T00:50:10.095000-07:00",
       "parameters": '{
            "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode":
            { "S": "true" }
       }' 
   }
   ```

## Bereinigen
<a name="remote-command-tutorial-clean"></a>

Nachdem Sie einen Befehl erstellt und auf Ihrem Gerät ausgeführt haben, können Sie ihn löschen, wenn Sie diesen Befehl nicht mehr verwenden möchten. Alle ausstehenden Befehlsausführungen, die gerade ausgeführt werden, werden weiterhin ausgeführt, ohne dass sich die Löschanforderung darauf auswirkt.

**Anmerkung**  
Alternativ können Sie einen Befehl auch als veraltet markieren, wenn er veraltet ist und Sie ihn möglicherweise später verwenden müssen, um ihn auf dem Zielgerät auszuführen.

1. 

**(Optional) Verwerfen Sie die Befehlsressource**

   Führen Sie den folgenden Befehl aus, um den Befehl als veraltet zu kennzeichnen. Dabei `command-id` steht die Befehls-ID in der Ausgabe der Operation von oben. `get-command`

   ```
   aws iot update-command \    
      --command-id TurnOffSteeringMode \    
      --deprecated
   ```

   Die Ausführung dieses Befehls gibt eine Ausgabe zurück, die anzeigt, dass der Befehl veraltet ist. Sie können den Befehl auch mit der CLI wiederherstellen. 
**Anmerkung**  
Sie können die `update-command` CLI auch verwenden, um den Anzeigenamen und die Beschreibung eines Befehls zu aktualisieren. Weitere Informationen finden Sie unter [Eine Befehlsressource aktualisieren oder als veraltet kennzeichnen](create-manage-remote-command-cli.md#update-remote-command-cli).

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "deprecated": true,
       "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00"
   }
   ```

1. 

**Löschen Sie den Befehl**

   Führen Sie den folgenden Befehl aus, um den durch den angegebenen Befehl zu löschen`command-id`.
**Anmerkung**  
Die Löschaktion ist dauerhaft und kann nicht rückgängig gemacht werden.

   ```
   aws iot delete-command --command-id TurnOffSteeringMode
   ```

   Wenn die Löschanforderung erfolgreich ist, wird `statusCode` der HTTP-Wert 202 oder 204 angezeigt, je nachdem, ob Sie den Befehl als veraltet markiert haben und wann er als veraltet markiert wurde. Weitere Informationen sowie ein Beispiel finden Sie unter [Löschen Sie eine Befehlsressource](create-manage-remote-command-cli.md#delete-remote-command-cli).

   Sie können die `get-command` CLI verwenden, um zu überprüfen, ob der Befehl aus Ihrem Konto entfernt wurde.

1. 

**(Optional) Löschen Sie die Befehlsausführungen**

   Standardmäßig werden alle Befehlsausführungen innerhalb von sechs Monaten ab dem Datum, an dem Sie sie erstellen, gelöscht. Sie können diese Informationen mithilfe des `timeToLive` Parameters in der `GetCommandExecution` API anzeigen.

   Alternativ können Sie die Befehlsausführung löschen, wenn Ihre Befehlsausführung zu einem Terminal geworden ist `SUCCEEDED``FAILED`, z. B. wenn Ihr Ausführungsstatus einer von`REJECTED`, oder ist. Führen Sie den folgenden Befehl aus, um die Ausführung zu löschen. Dabei `execution-id` steht die Ausführungs-ID in der Ausgabe der `get-command-execution` Operation von oben.

   ```
   aws iot delete-command-execution \ 
               --execution-id "07e4b780-7eca-4ffd-b772-b76358da5542"
   ```

   Sie können die `get-command-execution` CLI verwenden, um zu überprüfen, ob die Befehlsausführung aus Ihrem Konto entfernt wurde.