

AWS A IoT não FleetWise estará mais aberta a novos clientes a partir de 30 de abril de 2026. Os FleetWise clientes de AWS IoT existentes podem continuar usando o serviço. O [Guia para Mobilidade Conectada AWS](https://aws.amazon.com/solutions/guidance/connected-mobility-on-aws/) fornece orientação sobre como desenvolver e implantar serviços modulares para soluções de mobilidade conectada que podem ser usadas para obter recursos equivalentes aos da AWS IoT FleetWise.

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á.

# Exemplo: Usando comandos para controlar o modo de direção de um veículo (AWS CLI)
<a name="remote-command-tutorial"></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).

O exemplo a seguir mostra como usar o recurso de comandos usando AWS CLI o. Este exemplo usa um AWS IoT FleetWise veículo como dispositivo de destino para mostrar como você pode enviar um comando para controlar remotamente o modo de direção.

**Topics**
+ [Visão geral do exemplo do modo de direção do veículo](#iot-remote-command-tutorial-overview)
+ [Pré-requisitos](#iot-remote-command-tutorial-prereq)
+ [Política do IAM para usar comandos remotos](#remote-command-policy)
+ [Executar AWS IoT comandos (AWS CLI)](#iot-remote-command-tutorial-run)
+ [Limpeza](#remote-command-tutorial-clean)

## Visão geral do exemplo do modo de direção do veículo
<a name="iot-remote-command-tutorial-overview"></a>

Neste exemplo, você vai:

1. Crie um recurso de comando para a operação usando o `create-command` AWS CLI para alterar o modo de direção do veículo.

1. Recupere informações sobre o comando, como a hora em que ele foi criado ou atualizado pela última vez usando o. `get-command` AWS CLI

1. Envie o comando para o veículo usando o modo de direção como parâmetro obrigatório, que será executado no dispositivo. `start-command-execution` AWS CLI 

1. Obtenha o resultado da execução do comando usando `get-command-execution` AWS CLI o. Você pode verificar quando a execução foi concluída e recuperar detalhes adicionais, como o resultado da execução e o tempo necessário para concluir a execução do comando.

1. Execute atividades de limpeza removendo quaisquer comandos e execuções de comandos que você não queira mais usar.

## Pré-requisitos
<a name="iot-remote-command-tutorial-prereq"></a>

Antes de executar este exemplo:
+ Provisione seu AWS IoT FleetWise veículo como AWS IoT algo no AWS IoT registro. Você também deve adicionar um certificado à sua coisa, ativá-lo e anexar uma política à sua coisa. Seu dispositivo pode então se conectar à nuvem e executar os comandos. Para obter mais informações, consulte [Provisionar veículos](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/provision-vehicles.html).
+ Crie um usuário do IAM e uma política do IAM que conceda a você permissão para realizar as operações de API para usar comandos, conforme mostrado em[Política do IAM para usar comandos remotos](#remote-command-policy).

## Política do IAM para usar comandos remotos
<a name="remote-command-policy"></a>

A tabela a seguir mostra um exemplo de política do IAM que concede acesso a todas as operações de API do plano de controle e do plano de dados para o recurso de comandos. O usuário do aplicativo terá permissões para realizar todas as operações da API de comando remoto, conforme mostrado na tabela.


**Operação de API**  

| Ação da API | Plano de controle/dados | Protocolo | Description | Recurso | 
| --- | --- | --- | --- | --- | 
| CreateCommand | Ambiente de gerenciamento | HTTP | Cria um recurso de comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommand | Ambiente de gerenciamento | HTTP | Recupera informações sobre um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommand | Ambiente de gerenciamento | HTTP | Atualiza as informações sobre um comando ou para descontinuá-lo |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommands | Ambiente de gerenciamento | HTTP | Lista os comandos na sua conta |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommand | Ambiente de gerenciamento | HTTP | Exclui um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| StartCommandExecution | Plano de dados | HTTP | Inicia a execução de um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommandExecution | Plano de dados | MQTT | Atualizar a execução de um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommandExecution | Ambiente de gerenciamento | HTTP | Recupera informações sobre a execução de um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommandExecutions | Ambiente de gerenciamento | HTTP | Lista as execuções de comandos em sua conta |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommandExecution | Ambiente de gerenciamento | HTTP | Exclui a execução de um comando |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 

Neste exemplo, substitua:
+ `{{us-east-1}}`com o seu Região da AWS, como`ap-south-1`.
+ `{{111122223333}}` pelo número de sua Conta da AWS , como `57EXAMPLE833`.
+ `{{command-id}}``{{command-id1}}`, e `{{command-id2}}` com seu identificador de comando exclusivo, como `LockDoor` ou`TurnOffAC`.
+ `{{thing-name}}`com o nome da sua AWS IoT coisa, como`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}}"
            ]
        }
    ]
}
```

------

## Executar AWS IoT comandos (AWS CLI)
<a name="iot-remote-command-tutorial-run"></a>

O seguinte mostra como você pode usar o AWS CLI para executar operações de comandos e alterar o modo de direção do veículo.

1. 

**Crie um recurso de comando para a operação do modo de direção**

   Crie o comando que você deseja enviar ao seu dispositivo usando a `create-command` CLI. Neste exemplo, especifique:
   + `command-id` como {{`TurnOffSteeringMode`}}
   + `role-arn`como `"arn:aws:iam:{{accountId}}:role/{{FwCommandExecutionRole}}"` O `role-arn` deve ser fornecido, pois é a função do IAM que concede permissões para criar e executar comandos em seu veículo. Para obter mais informações, consulte [Conceda AWS IoT Device Management permissão para gerar a carga útil para comandos com AWS IoT FleetWise](controlling-access.md#generate-command-payload).
   + `display-name`como "{{`Turn off steering mode`}}”
   + `namespace`deve ser `AWS-IoT-FleetWise`
   + `mandatory-parameters`como um par nome-valor, com as "{{$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode}}" e defaultValue `name` como `{{{ "S": "true" }}}`
**nota**  
Você também pode criar um comando sem especificar nenhum parâmetro obrigatório. Em seguida, você deve especificar os parâmetros a serem usados ao executar o comando usando a `start-command-execution` CLI. Para ver um exemplo, consulte [Cenários de uso de comandos](remote-command-use-cases.md).
**Importante**  
Ao usar o `AWS-IoT-FleetWise` namespace, você deve garantir que o `Name` campo especificado como parte do `mandatory-parameters` use o `$actuatorPath.` prefixo e que o `Value` campo use o tipo de dados de string.

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

   A saída a seguir mostra um exemplo de resposta da CLI, onde `ap-south-1` e `123456789012` são exemplos do ID Região da AWS e. Conta da AWS 

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

   Para obter exemplos adicionais sobre o uso desse comando, consulte[Criar um recurso de comando](create-manage-remote-command-cli.md#create-remote-command-cli).

1. 

**Recupere informações sobre o comando**

   Execute o comando a seguir para recuperar informações sobre o comando, onde `command-id` está o ID do comando na saída da `create-command` operação acima.
**nota**  
Se você criar mais de um comando, poderá usar a `ListCommands` API para listar todos os comandos em sua conta e, em seguida, usar a `GetCommand` API para obter informações adicionais sobre um comando específico. Para obter mais informações, consulte [Listar comandos na sua conta](create-manage-remote-command-cli.md#list-remote-command-cli).

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

   A execução desse comando gera a resposta a seguir. Você verá a hora em que o comando foi criado e quando foi atualizado pela última vez, todos os parâmetros que você especificou e se o comando está disponível para execução no dispositivo.

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

   Para obter exemplos adicionais sobre o uso desse comando, consulte[Recuperar informações sobre um comando](create-manage-remote-command-cli.md#get-remote-command-cli).

1. 

**Inicie a execução do comando**

   Execute o comando a seguir para começar a executar o comando, onde `command-arn` está o comando ARN na saída `get-command` da operação acima. `target-arn`É o ARN do dispositivo de destino para o qual você está executando o comando, por exemplo,. {{`myVehicle`}}

   Neste exemplo, como você forneceu valores padrão para os parâmetros ao criar o comando, a `start-command-execution` CLI pode usar esses valores ao executar o comando. Você também pode optar por substituir o valor padrão especificando um valor diferente para os parâmetros ao usar a CLI.

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

   A execução desse comando exibe um ID de execução. Você pode usar esse ID para consultar o status, os detalhes e o histórico da execução do comando.

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

   Para obter exemplos adicionais sobre o uso da CLI, consulte. [Enviar um comando (AWS CLI)](send-monitor-remote-command-cli.md#send-remote-command-cli)

1. 

**Recupere informações sobre a execução do comando**

   Execute o comando a seguir para recuperar informações sobre o comando que você executou no dispositivo de destino. Especifique o`execution-id`, que você obteve como saída da `start-command-execution` operação acima, e o`target-arn`, que é o ARN do dispositivo que você está segmentando.
**nota**  
Para obter as informações de status mais recentes, seus dispositivos devem ter publicado as informações de status atualizadas no tópico de resposta reservada do MQTT para comandos que usam a API do `UpdateCommandExecution` MQTT. Para obter mais informações, consulte [Atualizar o resultado da execução do comando](send-monitor-remote-command-cli.md#update-remote-command-execution-cli).
Se você iniciar mais de uma execução de comando, poderá usar a `ListCommandExecutions` API para listar todas as execuções de comandos em sua conta e, em seguida, usar a `GetCommandExecution` API para obter informações adicionais sobre uma execução específica. Para obter mais informações, consulte [Listar as execuções de comandos em sua conta](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}}
   ```

   A execução desse comando retorna informações sobre a execução do comando, o status da execução, a hora em que a execução foi iniciada e a hora em que foi concluída. Por exemplo, a resposta a seguir mostra que a execução do comando foi bem-sucedida no dispositivo de destino e o modo de direção foi desativado.

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

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

Agora que você criou um comando e o executou em seu dispositivo, se não pretende mais usá-lo, você pode excluí-lo. Todas as execuções de comando pendentes em andamento continuarão sendo executadas sem serem afetadas pela solicitação de exclusão.

**nota**  
Como alternativa, você também pode descontinuar um comando se ele estiver desatualizado e talvez seja necessário usá-lo posteriormente para ser executado no dispositivo de destino.

1. 

**(Opcional) Descontinuar o recurso de comando**

   Execute o comando a seguir para descontinuar o comando, onde `command-id` está o ID do comando na saída da `get-command` operação acima.

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

   A execução desse comando retorna uma saída que mostra que o comando foi descontinuado. Você também pode usar a CLI para restaurar o comando. 
**nota**  
Você também pode usar a `update-command` CLI para atualizar o nome de exibição e a descrição de um comando. Para obter informações adicionais, consulte [Atualizar ou descontinuar um recurso de comando](create-manage-remote-command-cli.md#update-remote-command-cli).

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

1. 

**Exclua o comando**

   Execute o comando a seguir para excluir o comando, especificado pelo`command-id`.
**nota**  
A ação de exclusão é permanente e não pode ser desfeita.

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

   Se a solicitação de exclusão for bem-sucedida, você verá um HTTP `statusCode` de 202 ou 204, dependendo se você marcou o comando para descontinuação e quando ele foi descontinuado. Para obter mais informações e um exemplo, consulte [Excluir um recurso de comando](create-manage-remote-command-cli.md#delete-remote-command-cli).

   Você pode usar a `get-command` CLI para verificar se o comando foi removido da sua conta.

1. 

**(Opcional) Exclua as execuções do comando**

   Por padrão, todas as execuções de comandos serão excluídas em seis meses a partir da data em que você as criou. Você pode visualizar essas informações usando o `timeToLive` parâmetro da `GetCommandExecution` API.

   Como alternativa, se sua execução de comando se tornou terminal, como quando seu status de execução é de`SUCCEEDED`,`FAILED`, ou`REJECTED`, você pode excluir a execução do comando. Execute o comando a seguir para excluir a execução, onde `execution-id` está o ID de execução na saída da `get-command-execution` operação acima.

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

   Você pode usar a `get-command-execution` CLI para verificar se a execução do comando foi removida da sua conta.