

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Cenários de uso de comandos
<a name="remote-command-use-cases"></a>

**Importante**  
O acesso a determinados FleetWise recursos de AWS IoT está atualmente bloqueado. Para obter mais informações, consulte [AWS Disponibilidade de regiões e recursos na AWS IoT FleetWise](fleetwise-regions.md).

Ao usar o recurso de comandos, você pode criar e executar comandos nos seguintes cenários:
+ Você pode omitir os parâmetros durante a criação e especificar somente o ID do comando. Nesse caso, você precisa especificar os parâmetros a serem usados ao executar o comando no dispositivo de destino.
+ Você pode especificar um ou mais parâmetros e configurar valores padrão para eles ao criar o comando. Fornecer valores padrão ajudará você a evitar o envio de comandos imprecisos.
+ Você pode especificar um ou mais parâmetros e configurar valores para eles ao criar o comando. Mais de um parâmetro pode ser fornecido, mas somente um deles será executado, e o `Name` campo desse parâmetro deve usar o `$actuatorPath` prefixo.

Esta seção fornece alguns cenários de uso da `CreateCommand` e da `StartCommandExecution` API e o uso dos parâmetros. Também mostra alguns exemplos de uso de comandos com modelos de estado.

**Topics**
+ [Criando um comando sem parâmetros](#remote-command-use-case1)
+ [Criação de um comando com valores padrão para parâmetros](#remote-command-use-case2)
+ [Criação de um comando com valores de parâmetros](#remote-command-use-case3)
+ [Usando comandos com modelos de estado](#remote-command-use-cases-templates)

## Criando um comando sem parâmetros
<a name="remote-command-use-case1"></a>

O caso de uso a seguir mostra como você pode usar a `CreateCommand` API ou a `create-command` CLI para criar um comando sem parâmetros. Ao criar um comando, você só precisa fornecer um ID de comando e um ARN de função.

Esse caso de uso é especialmente útil em casos de uso recorrentes, como quando você deseja enviar o mesmo comando várias vezes para um veículo. Nesse caso, o comando não está vinculado a um atuador específico e oferece a flexibilidade de executar o comando em qualquer atuador. Em vez disso, você deve especificar os parâmetros em tempo de execução ao executar o comando usando a `StartCommandExecution` API ou a `start-command-execution` CLI, que inclui os atuadores e os valores do sinal físico.

### Criando um comando sem `mandatory-parameters` entrada
<a name="remote-command-use-case1-create"></a>

Esse caso de uso mostra como criar um comando sem a entrada obrigatória de parâmetros.

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

### Executando um comando criado sem `mandatory-parameters` entrada
<a name="remote-command-use-case1-start"></a>

Neste primeiro exemplo, o comando criado acima permite que você execute um comando em qualquer atuador sem restrições. `actuator1`Para definir um valor de 10, execute:

```
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"}
    }'
```

Da mesma forma, você pode executar um comando definido `actuator3` como um valor de`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"}
    }'
```

## Criação de um comando com valores padrão para parâmetros
<a name="remote-command-use-case2"></a>

Esse comando só permite que você execute um comando no atuador especificado. Fornecer valores padrão ajudará você a evitar o envio de comandos imprecisos. Por exemplo, um `LockDoor` comando que tranca e destranca portas pode ser configurado com um valor padrão para evitar que o comando destranque portas acidentalmente.

Esse caso de uso é especialmente útil quando você deseja enviar o mesmo comando várias vezes e realizar ações diferentes no mesmo atuador, como trancar e destrancar as portas de um veículo. Se você quiser definir o atuador para o valor padrão, não precisará passar nenhum `parameters` para a CLI`start-command-execution`. Se você especificar um valor diferente para o `parameters` na `start-command-execution` CLI, ele substituirá o valor padrão.

### Criação de um comando com valores padrão para `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

O comando a seguir mostra como fornecer um valor padrão para o atuador1.

```
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"}
        }
    ]'
```

### Executando um comando criado com valores padrão para `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

O comando `UserJourney2` permite que você execute um comando sem a necessidade de passar um valor de entrada durante o tempo de execução. Nesse caso, a execução em tempo de execução usará os valores padrão especificados durante a criação.

```
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
```

Você também pode passar um valor diferente para o mesmo atuador, atuador1, durante o tempo de execução, o que substituirá o valor padrão.

```
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"}
    }'
```

## Criação de um comando com valores de parâmetros
<a name="remote-command-use-case3"></a>

Esse comando só permite que você execute um comando no atuador especificado. Também força você a definir um valor para o atuador durante o tempo de execução.

Esse caso de uso é especialmente útil quando você deseja que o usuário final execute apenas determinadas ações especificadas em alguns dos atuadores ao executá-los no veículo.

**nota**  
Você pode ter mais do que pares nome-valor para a `mandatory-parameters` entrada, com valores padrão para alguns ou todos eles. Em tempo de execução, você pode então determinar o parâmetro que deseja usar ao executar no atuador, desde que o nome do atuador use o nome totalmente qualificado com o prefixo. `$actuatorPath.`

### Criação de comando sem valores padrão para `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Esse comando só permite que você execute um comando no atuador especificado. Também força você a definir um valor para o atuador durante o tempo de execução.

```
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"
        }
    ]'
```

### Executando um comando criado sem valores padrão para `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Ao executar o comando, nesse caso, você deve especificar um valor para atuador1. A execução do comando mostrada abaixo definirá com sucesso o valor de `actuator1` para`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"}
    }'
```

## Usando comandos com modelos de estado
<a name="remote-command-use-cases-templates"></a>

Você também pode usar as operações de API de comandos para coleta e processamento de dados estaduais. Por exemplo, você pode obter um instantâneo de estado único ou ativar ou desativar modelos de estado para iniciar ou parar de coletar dados de estado do veículo. Os exemplos a seguir mostram como usar o recurso de comandos com modelos de estado. Para obter mais informações, consulte [Operações de modelo de estado para a coleta e processamento de dados](state-template-api-operations.md).

**nota**  
O campo Nome especificado como parte da `mandatory-parameters` entrada deve usar o `$stateTemplate` prefixo.

### Exemplo 1: Criação de comandos para modelos de estado com valores padrão
<a name="remote-command-use-cases-template-ex1"></a>

Este exemplo mostra como usar a `create-command` CLI para ativar modelos de estado.

```
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"}
      }
    ]'
```

Da mesma forma, o comando a seguir mostra um exemplo de como você pode usar a `start-command-execution` CLI para modelos de estado.

```
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"}
    }'
```

### Exemplo 2: Criação de comandos para modelos de estado sem valores padrão
<a name="remote-command-use-cases-template-ex2"></a>

O comando a seguir cria vários modelos de estado sem valores padrão para nenhum dos parâmetros. Isso força você a executar o comando com esses parâmetros e os valores para eles.

```
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"}
      } 
    ]'
```

O comando a seguir mostra como você pode usar a `start-command-execution` CLI para o exemplo acima.

```
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"}
```