Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplo: Uso de comandos para controlar el modo de dirección de un vehículo ()AWS CLI
importante
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise.
En el siguiente ejemplo, se muestra cómo utilizar la función de comandos mediante el AWS CLI. En este ejemplo, se utiliza un AWS IoT FleetWise vehículo como dispositivo objetivo para mostrar cómo se puede enviar un comando para controlar de forma remota el modo de dirección.
Temas
Ejemplo de descripción general del modo de dirección del vehículo
En este ejemplo, harás lo siguiente:
-
Cree un recurso de comando para la operación y
create-commandAWS CLI utilícelo para cambiar el modo de dirección del vehículo. -
Recupere información sobre el comando, como la hora en que se creó o se actualizó por última vez mediante el
get-commandAWS CLI. -
Envíe el comando al vehículo utilizando el
start-command-executionAWS CLI modo de dirección como parámetro obligatorio, que luego se ejecutará en el dispositivo. -
Obtenga el resultado de la ejecución del comando mediante el
get-command-executionAWS CLI. Puede comprobar cuándo se completa la ejecución y recuperar detalles adicionales, como el resultado de la ejecución y el tiempo que se tardó en completar la ejecución del comando. -
Realice actividades de limpieza eliminando todos los comandos y las ejecuciones de comandos que ya no desee utilizar.
Requisitos previos
Antes de ejecutar este ejemplo:
-
Aprovisione su AWS IoT FleetWise vehículo como una AWS IoT cosa inscrita en el AWS IoT registro. También debes añadir un certificado a lo tuyo y activarlo, y adjuntar una política a lo tuyo. Luego, su dispositivo puede conectarse a la nube y ejecutar los comandos. Para obtener más información, consulte Aprovisionar vehículos.
-
Cree un usuario de IAM y una política de IAM que le conceda permiso para realizar las operaciones de la API relacionadas con el uso de comandos, como se muestra en. Política de IAM para el uso de comandos remotos
Política de IAM para el uso de comandos remotos
En la siguiente tabla se muestra un ejemplo de política de IAM que permite el acceso a todas las operaciones de la API del plano de control y del plano de datos para la función de comandos. El usuario de la aplicación tendrá permisos para realizar todas las operaciones de la API de comandos remotos, como se muestra en la tabla.
| Acción de la API | Plano de control/datos | Protocolo | Description (Descripción) | Recurso |
|---|---|---|---|---|
CreateCommand |
Plano de control | HTTP | Crea un recurso de comandos |
|
GetCommand |
Plano de control | HTTP | Recupera información sobre un comando |
|
UpdateCommand |
Plano de control | HTTP | Actualiza la información sobre un comando o lo deja obsoleto |
|
ListCommands |
Plano de control | HTTP | Muestra los comandos de tu cuenta |
|
DeleteCommand |
Plano de control | HTTP | Elimina un comando |
|
StartCommandExecution |
Plano de datos | HTTP | Comienza a ejecutar un comando |
|
UpdateCommandExecution |
Plano de datos | MQTT | Actualiza la ejecución de un comando |
|
GetCommandExecution |
Plano de control | HTTP | Recupera información sobre la ejecución de un comando |
|
ListCommandExecutions |
Plano de control | HTTP | Muestra las ejecuciones de comandos en su cuenta |
|
DeleteCommandExecution |
Plano de control | HTTP | Elimina la ejecución de un comando |
|
En este ejemplo, sustituya:
-
con su Región de AWS, por ejemplo.us-east-1ap-south-1 -
con tu Cuenta de AWS número, por ejemplo11112222333357EXAMPLE833. -
command-id, ycommand-id1con su identificador de comando único, comocommand-id2LockDooroTurnOffAC. -
con el nombre de tu AWS IoT cosa, comothing-namemy_car.
Ejecute AWS IoT comandos (AWS CLI)
A continuación, se muestra cómo se puede utilizar AWS CLI para ejecutar operaciones con comandos y cambiar el modo de dirección del vehículo.
-
Cree un recurso de comando para el funcionamiento del modo de dirección
Cree el comando que desee enviar a su dispositivo mediante la
create-commandCLI. En este ejemplo, especifique:-
command-idcomoTurnOffSteeringMode -
role-arnya querole-arndebe proporcionarse"arn:aws:iam:la función de IAM, ya que es la función de IAM la que otorga los permisos para crear y ejecutar comandos en el vehículo. Para obtener más información, consulte Conceda AWS IoT Device Management permiso para generar la carga útil de los comandos con AWS IoT FleetWise.accountId:role/FwCommandExecutionRole" -
display-namecomo "»Turn off steering mode -
namespacedebe serAWS-IoT-FleetWise -
mandatory-parameterscomo un par nombre-valor, connamecomo "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode" y DefaultValue como{ "S": "true" }nota
También puede crear un comando sin especificar ningún parámetro obligatorio. A continuación, debe especificar los parámetros que se utilizarán al ejecutar el comando mediante la
start-command-executionCLI. Para ver un ejemplo, consulta Escenarios de uso de comandos.
importante
Al utilizar el espacio de
AWS-IoT-FleetWisenombres, debe asegurarse de que elNamecampo especificado como parte del mismomandatory-parametersutilice el$actuatorPath.prefijo y que elValuecampo utilice el tipo de datos de cadena.aws iot create-command \ --command-idTurnOffSteeringMode\ --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"} } ]'El siguiente resultado muestra un ejemplo de respuesta de la CLI, donde
ap-south-1y123456789012son ejemplos del Cuenta de AWS ID Región de AWS y.{ "commandId": "TurnOffSteeringMode", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode" }Para ver ejemplos adicionales sobre el uso de este comando, consulteCree un recurso de comandos.
-
-
Recupere información sobre el comando
Ejecute el siguiente comando para recuperar información sobre el comando, donde
command-idaparece el identificador del comando en el resultado de lacreate-commandoperación desde arriba.nota
Si creas más de un comando, puedes usar la
ListCommandsAPI para enumerar todos los comandos de tu cuenta y, a continuación, usar laGetCommandAPI para obtener información adicional sobre un comando específico. Para obtener más información, consulte Enumere los comandos de su cuenta.aws iot get-command --command-idTurnOffSteeringModeLa ejecución de este comando genera la siguiente respuesta. Verá la hora en que se creó el comando y cuándo se actualizó por última vez, los parámetros que especificó y si el comando está disponible para ejecutarse en el 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 ver ejemplos adicionales sobre el uso de este comando, consulteRecupera información sobre un comando.
-
Inicie la ejecución del comando
Ejecute el siguiente comando para iniciar la ejecución del comando, donde
command-arnaparece el comando ARN en la salida de laget-commandoperación desde arriba.target-arnEs el ARN del dispositivo de destino para el que está ejecutando el comando, por ejemplo,.myVehicleEn este ejemplo, dado que proporcionó valores predeterminados para los parámetros al crear el comando, la
start-command-executionCLI puede usar estos valores al ejecutar el comando. También puede optar por anular el valor predeterminado especificando un valor diferente para los parámetros cuando utilice la 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/myVehicleLa ejecución de este comando devuelve un identificador de ejecución del comando. Puede usar este ID para consultar el estado de ejecución del comando, los detalles y el historial de ejecución del comando.
{ "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542" }Para ver ejemplos adicionales sobre el uso de la CLI, consulteEnvía un comando ()AWS CLI.
-
Recupere información sobre la ejecución del comando
Ejecute el siguiente comando para recuperar información sobre el comando que ejecutó en el dispositivo de destino. Especifica el
execution-id, que obtuviste como resultado de lastart-command-executionoperación desde arriba, y eltarget-arn, que es el ARN del dispositivo al que te diriges.nota
-
Para obtener la información de estado más reciente, sus dispositivos deben haber publicado la información de estado actualizada en el tema de respuesta reservada de MQTT para los comandos que utilizan la API de
UpdateCommandExecutionMQTT. Para obtener más información, consulte Actualiza el resultado de la ejecución del comando. -
Si inicia más de una ejecución de comandos, puede utilizar la
ListCommandExecutionsAPI para enumerar todas las ejecuciones de comandos de su cuenta y, a continuación, utilizarlaGetCommandExecutionpara obtener información adicional sobre una ejecución específica. Para obtener más información, consulte Enumere las ejecuciones de comandos en su cuenta.
aws iot get-command-execution \ --execution-id<"07e4b780-7eca-4ffd-b772-b76358da5542">\ --target-arn arn:aws:iot:us-east-1:<account>:thing/myVehicleAl ejecutar este comando, se devuelve información sobre la ejecución del comando, el estado de la ejecución, la hora en que comenzó a ejecutarse y la hora en que se completó. Por ejemplo, la siguiente respuesta muestra que la ejecución del comando se realizó correctamente en el dispositivo de destino y que el modo de dirección estaba desactivado.
{ "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" } }' } -
Limpieza
Ahora que ha creado un comando y lo ha ejecutado en su dispositivo, si ya no tiene intención de usarlo, puede eliminarlo. Las ejecuciones de comandos pendientes que estén en curso seguirán ejecutándose sin que se vean afectadas por la solicitud de eliminación.
nota
Como alternativa, también puedes dejar de usar un comando si está desactualizado y es posible que tengas que usarlo más adelante para ejecutarlo en el dispositivo de destino.
-
(Opcional) Elimine el recurso de comandos
Ejecute el siguiente comando para dejarlo obsoleto, donde
command-idaparece el identificador del comando que aparece arriba en el resultado de laget-commandoperación.aws iot update-command \ --command-idTurnOffSteeringMode\ --deprecatedLa ejecución de este comando devuelve un resultado que indica que el comando ha quedado obsoleto. También puede usar la CLI para restaurar el comando.
nota
También puede usar la
update-commandCLI para actualizar el nombre mostrado y la descripción de un comando. Para obtener información adicional, consulta Actualiza o desactiva un recurso de comando.{ "commandId": "TurnOffSteeringMode", "deprecated": true, "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00" } -
Elimine el comando
Ejecute el siguiente comando para eliminar el comando especificado por
command-id.nota
La acción de eliminación es permanente y no se puede deshacer.
aws iot delete-command --command-idTurnOffSteeringModeSi la solicitud de eliminación se realiza correctamente, verás un HTTP
statusCodede 202 o 204, dependiendo de si marcaste el comando como obsoleto y de cuándo lo hizo. Para obtener más información y un ejemplo, consulte Eliminar un recurso de comandos.Puede usar la
get-commandCLI para comprobar que el comando se ha eliminado de su cuenta. -
(Opcional) Elimine las ejecuciones de comandos
De forma predeterminada, todas las ejecuciones de comandos se eliminarán en un plazo de seis meses a partir de la fecha en que las haya creado. Puede ver esta información mediante el
timeToLiveparámetro de laGetCommandExecutionAPI.Como alternativa, si la ejecución del comando ha pasado a ser terminal, por ejemplo, cuando el estado de ejecución es uno de
SUCCEEDEDFAILED, o bienREJECTED, puede eliminar la ejecución del comando. Ejecute el siguiente comando para eliminar la ejecución, dondeexecution-idaparece el identificador de ejecución que aparece arriba en el resultado de laget-command-executionoperación.aws iot delete-command-execution \ --execution-id"07e4b780-7eca-4ffd-b772-b76358da5542"Puede usar la
get-command-executionCLI para comprobar que la ejecución del comando se ha eliminado de su cuenta.