

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.

# Szenarien zur Verwendung von Befehlen
<a name="remote-command-use-cases"></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).

Wenn Sie die Befehlsfunktion verwenden, können Sie Befehle in den folgenden Szenarien erstellen und ausführen:
+ Sie können die Parameter bei der Erstellung weglassen und nur die Befehls-ID angeben. In diesem Fall müssen Sie die Parameter angeben, die bei der Ausführung des Befehls auf dem Zielgerät verwendet werden sollen.
+ Sie können einen oder mehrere Parameter angeben und Standardwerte für diese Parameter konfigurieren, wenn Sie den Befehl erstellen. Die Angabe von Standardwerten schützt Sie davor, ungenaue Befehle zu senden.
+ Sie können einen oder mehrere Parameter angeben und Werte für diese Parameter konfigurieren, wenn Sie den Befehl erstellen. Es können mehrere Parameter angegeben werden, aber nur einer davon wird ausgeführt, und das `Name` Feld dieses Parameters muss das `$actuatorPath` Präfix verwenden.

Dieser Abschnitt enthält einige Nutzungsszenarien für die `CreateCommand` und die `StartCommandExecution` API und die Verwendung der Parameter. Außerdem werden Ihnen einige Beispiele für die Verwendung von Befehlen mit Statusvorlagen gezeigt.

**Topics**
+ [Einen Befehl ohne Parameter erstellen](#remote-command-use-case1)
+ [Einen Befehl mit Standardwerten für Parameter erstellen](#remote-command-use-case2)
+ [Einen Befehl mit Parameterwerten erstellen](#remote-command-use-case3)
+ [Befehle mit Statusvorlagen verwenden](#remote-command-use-cases-templates)

## Einen Befehl ohne Parameter erstellen
<a name="remote-command-use-case1"></a>

Der folgende Anwendungsfall zeigt, wie Sie die `CreateCommand` API oder die `create-command` CLI verwenden können, um einen Befehl ohne Parameter zu erstellen. Wenn Sie einen Befehl erstellen, müssen Sie nur eine Befehls-ID und einen Rollen-ARN angeben.

Dieser Anwendungsfall ist besonders nützlich in wiederkehrenden Anwendungsfällen, z. B. wenn Sie denselben Befehl mehrmals an ein Fahrzeug senden möchten. In diesem Fall ist der Befehl nicht an einen bestimmten Aktuator gebunden und bietet Ihnen die Flexibilität, den Befehl auf einem beliebigen Aktuator auszuführen. Sie müssen die Parameter stattdessen zur Laufzeit angeben, wenn Sie den Befehl mithilfe der `StartCommandExecution` API oder der `start-command-execution` CLI ausführen, was die Aktuatoren und physikalischen Signalwerte umfasst.

### Einen Befehl ohne `mandatory-parameters` Eingabe erstellen
<a name="remote-command-use-case1-create"></a>

Dieser Anwendungsfall zeigt, wie ein Befehl ohne obligatorische Parametereingabe erstellt wird.

```
aws iot create-command \
    --command-id "UserJourney1" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --description "UserJourney1 - No mandatory parameters" \
    --namespace "AWS-IoT-FleetWise"
```

### Einen Befehl ausführen, der ohne `mandatory-parameters` Eingabe erstellt wurde
<a name="remote-command-use-case1-start"></a>

In diesem ersten Beispiel können Sie mit dem oben erstellten Befehl einen Befehl an einem beliebigen Aktuator ohne Einschränkungen ausführen. `actuator1`Um einen Wert von 10 festzulegen, führen Sie folgenden Befehl aus:

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

Auf ähnliche Weise können Sie einen Befehl ausführen, der `actuator3` auf einen Wert von festgelegt ist`true`.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator3": {"S": "true"}
    }'
```

## Einen Befehl mit Standardwerten für Parameter erstellen
<a name="remote-command-use-case2"></a>

Mit diesem Befehl können Sie nur einen Befehl auf dem angegebenen Aktuator ausführen. Die Angabe von Standardwerten schützt Sie davor, ungenaue Befehle zu senden. Beispielsweise kann ein `LockDoor` Befehl zum Sperren und Entsperren von Türen mit einem Standardwert konfiguriert werden, um zu verhindern, dass der Befehl versehentlich Türen entriegelt.

Dieser Anwendungsfall ist besonders nützlich, wenn Sie denselben Befehl mehrmals senden und verschiedene Aktionen an demselben Aktuator ausführen möchten, z. B. die Türen eines Fahrzeugs ver- und entriegeln. Wenn Sie den Aktuator auf den Standardwert setzen möchten, müssen Sie keinen Wert an die `start-command-execution` CLI übergeben. `parameters` Wenn Sie `parameters` in der `start-command-execution` CLI einen anderen Wert für angeben, überschreibt dieser den Standardwert.

### Erstellen eines Befehls mit Standardwerten für `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

Der folgende Befehl zeigt, wie ein Standardwert für actuator1 bereitgestellt wird.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1",
            "defaultValue": {"S": "0"}
        }
    ]'
```

### Ausführen eines Befehls, der mit Standardwerten für erstellt wurde `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

Mit dem Befehl `UserJourney2` können Sie einen Befehl ausführen, ohne während der Laufzeit einen Eingabewert übergeben zu müssen. In diesem Fall verwendet die Ausführung zur Laufzeit die bei der Erstellung angegebenen Standardwerte.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle
```

Sie können während der Laufzeit auch einen anderen Wert für denselben Aktuator, actuator1, übergeben, wodurch der Standardwert überschrieben wird.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "139"}
    }'
```

## Einen Befehl mit Parameterwerten erstellen
<a name="remote-command-use-case3"></a>

Mit diesem Befehl können Sie nur einen Befehl auf dem angegebenen Aktuator ausführen. Außerdem müssen Sie während der Laufzeit einen Wert für den Aktuator festlegen.

Dieser Anwendungsfall ist besonders nützlich, wenn Sie möchten, dass der Endbenutzer nur bestimmte, festgelegte Aktionen an einigen der Aktuatoren ausführt, wenn sie im Fahrzeug ausgeführt werden.

**Anmerkung**  
Sie können mehr als Name-Wert-Paare für die `mandatory-parameters` Eingabe verwenden, wobei Standardwerte für einige oder alle von ihnen verwendet werden können. Zur Laufzeit können Sie dann den Parameter bestimmen, den Sie bei der Ausführung auf dem Aktuator verwenden möchten, vorausgesetzt, der Name des Aktuators verwendet den vollqualifizierten Namen mit dem Präfix. `$actuatorPath.`

### Befehl ohne Standardwerte wird erstellt für `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Mit diesem Befehl können Sie nur einen Befehl auf dem angegebenen Aktuator ausführen. Außerdem müssen Sie während der Laufzeit einen Wert für den Aktuator festlegen.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1"
        }
    ]'
```

### Ausführen eines Befehls, der ohne Standardwerte für erstellt wurde `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Wenn Sie den Befehl ausführen, müssen Sie in diesem Fall einen Wert für actuator1 angeben. Bei der unten gezeigten Befehlsausführung wird der Wert von `actuator1` auf erfolgreich gesetzt. `10`

```
aws iot-data start-command-execution \    
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney2 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

## Befehle mit Statusvorlagen verwenden
<a name="remote-command-use-cases-templates"></a>

Sie können auch die API-Operationen der Befehle für die Erfassung und Verarbeitung von Statusdaten verwenden. Sie können beispielsweise einen einmaligen Status-Snapshot abrufen oder Statusvorlagen aktivieren oder deaktivieren, um die Erfassung von Fahrzeugzustandsdaten zu starten oder zu beenden. Die folgenden Beispiele zeigen, wie die Befehlsfunktion mit Statusvorlagen verwendet wird. Weitere Informationen finden Sie unter [Operationen zu Statusvorlagen für die Datenerfassung und -verarbeitung](state-template-api-operations.md).

**Anmerkung**  
Das als Teil der `mandatory-parameters` Eingabe angegebene Namensfeld muss das `$stateTemplate` Präfix verwenden.

### Beispiel 1: Befehle für Statusvorlagen mit Standardwerten erstellen
<a name="remote-command-use-cases-template-ex1"></a>

Dieses Beispiel zeigt, wie Sie die `create-command` CLI verwenden, um Statusvorlagen zu aktivieren.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \    
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name"
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      }
    ]'
```

In ähnlicher Weise zeigt der folgende Befehl ein Beispiel dafür, wie Sie die `start-command-execution` CLI für Statusvorlagen verwenden können.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
       "$stateTemplate.name": {"S": "ST345"}
    }'
```

### Beispiel 2: Befehle für Statusvorlagen ohne Standardwerte erstellen
<a name="remote-command-use-cases-template-ex2"></a>

Der folgende Befehl erstellt mehrere Statusvorlagen ohne Standardwerte für einen der Parameter. Er zwingt Sie, den Befehl mit diesen Parametern und den entsprechenden Werten auszuführen.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name",
          "defaultValue": {"S": "ST123"}
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      },
      {
          "name": "$stateTemplate.deactivateAfterSeconds",
          "defaultValue": {"L": "120"}
      } 
    ]'
```

Der folgende Befehl zeigt, wie Sie die `start-command-execution` CLI für das obige Beispiel verwenden können.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
        "$stateTemplate.name": {"S": "ST345"},
        "$stateTemplate.operation": {"S": "activate"},
        "$stateTemplate.deactivateAfterSeconds" : {"L": "120"}
```