Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemple : utilisation de commandes pour contrôler le mode de direction d'un véhicule (AWS CLI)
Important
L'accès à certaines FleetWise fonctionnalités de AWS l'IoT est actuellement restreint. Pour de plus amples informations, veuillez consulter AWS Disponibilité des régions et des fonctionnalités dans AWS l'IoT FleetWise.
L'exemple suivant montre comment utiliser la fonctionnalité de commandes à l'aide du AWS CLI. Cet exemple utilise un AWS IoT FleetWise véhicule comme équipement cible pour montrer comment envoyer une commande pour contrôler à distance le mode de direction.
Rubriques
Vue d'ensemble de l'exemple du mode de direction du véhicule
Dans cet exemple, vous allez :
-
Créez une ressource de commande pour l'opération en utilisant le
create-commandAWS CLI pour modifier le mode de direction du véhicule. -
Récupérez des informations sur la commande, telles que l'heure à laquelle elle a été créée ou mise à jour pour la dernière fois à l'aide du
get-commandAWS CLI. -
Envoyez la commande au véhicule en utilisant le
start-command-executionAWS CLI mode de direction comme paramètre obligatoire, qui sera ensuite exécutée sur l'appareil. -
Obtenez le résultat de l'exécution de la commande à l'aide du
get-command-executionAWS CLI. Vous pouvez vérifier quand l'exécution est terminée et récupérer des détails supplémentaires tels que le résultat de l'exécution et le temps nécessaire pour terminer l'exécution de la commande. -
Effectuez des activités de nettoyage en supprimant les commandes et les exécutions de commandes que vous ne souhaitez plus utiliser.
Prérequis
Avant d'exécuter cet exemple :
-
Provisionnez votre AWS IoT FleetWise véhicule en tant qu' AWS IoT objet inscrit dans le AWS IoT registre. Vous devez également ajouter un certificat à votre objet, l'activer et associer une politique à votre objet. Votre appareil peut ensuite se connecter au cloud et exécuter les commandes. Pour plus d'informations, voir Provisionner des véhicules.
-
Créez un utilisateur IAM et une politique IAM qui vous autorise à effectuer les opérations d'API pour utiliser des commandes, comme indiqué dans. Politique IAM pour l'utilisation des commandes à distance
Politique IAM pour l'utilisation des commandes à distance
Le tableau suivant présente un exemple de politique IAM qui accorde l'accès à toutes les opérations d'API du plan de contrôle et du plan de données pour la fonctionnalité de commandes. L'utilisateur de l'application sera autorisé à effectuer toutes les opérations de l'API de commande à distance, comme indiqué dans le tableau.
| Action d’API | Plan de contrôle/de données | Protocole | Description | Ressource |
|---|---|---|---|---|
CreateCommand |
Plan de contrôle | HTTP | Crée une ressource de commande |
|
GetCommand |
Plan de contrôle | HTTP | Récupère les informations relatives à une commande |
|
UpdateCommand |
Plan de contrôle | HTTP | Met à jour les informations relatives à une commande ou pour la rendre obsolète |
|
ListCommands |
Plan de contrôle | HTTP | Répertorie les commandes de votre compte |
|
DeleteCommand |
Plan de contrôle | HTTP | Supprime une commande |
|
StartCommandExecution |
Plan de données | HTTP | Lance l'exécution d'une commande |
|
UpdateCommandExecution |
Plan de données | MQTT | Mettre à jour l'exécution d'une commande |
|
GetCommandExecution |
Plan de contrôle | HTTP | Récupère les informations relatives à l'exécution d'une commande |
|
ListCommandExecutions |
Plan de contrôle | HTTP | Répertorie les exécutions de commandes dans votre compte |
|
DeleteCommandExecution |
Plan de contrôle | HTTP | Supprime l'exécution d'une commande |
|
Dans cet exemple, remplacez :
-
avec votre Région AWS, par exempleus-east-1ap-south-1. -
avec votre Compte AWS numéro, par exemple11112222333357EXAMPLE833. -
command-id, etcommand-id1avec votre identifiant de commande unique, tel quecommand-id2LockDoorouTurnOffAC. -
avec le nom de votre AWS IoT objet, tel quething-namemy_car.
Exécuter AWS IoT des commandes (AWS CLI)
Ce qui suit montre comment vous pouvez utiliser le AWS CLI pour exécuter des commandes et modifier le mode de direction du véhicule.
-
Création d'une ressource de commande pour le fonctionnement du mode de direction
Créez la commande que vous souhaitez envoyer à votre appareil à l'aide de la
create-commandCLI. Dans cet exemple, spécifiez :-
command-idcommeTurnOffSteeringMode -
role-arncar"arn:aws:iam:le rôle IAMaccountId:role/FwCommandExecutionRole"role-arndoit être fourni, car c'est le rôle IAM qui accorde les autorisations nécessaires pour créer et exécuter des commandes sur votre véhicule. Pour de plus amples informations, veuillez consulter Accorder AWS IoT Device Management l'autorisation de générer la charge utile pour les commandes avec AWS IoT FleetWise. -
display-namesous la forme de «»Turn off steering mode -
namespacedoit êtreAWS-IoT-FleetWise -
mandatory-parameterssous forme de paire nom-valeur, avec «$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode» et DefaultValuenamecomme{ "S": "true" }Note
Vous pouvez également créer une commande sans spécifier de paramètres obligatoires. Vous devez ensuite spécifier les paramètres à utiliser lors de l'exécution de la commande à l'aide de la
start-command-executionCLI. Pour obtenir un exemple, consultez Scénarios d'utilisation des commandes.
Important
Lorsque vous utilisez l'
AWS-IoT-FleetWiseespace de noms, vous devez vous assurer que leNamechamp spécifié dans le cadre de celui-cimandatory-parametersutilise le$actuatorPath.préfixe et que leValuechamp doit utiliser le type de données chaîne.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"} } ]'La sortie suivante montre un exemple de réponse de la CLI, où
ap-south-1et123456789012sont des exemples de l' Compte AWS ID Région AWS and.{ "commandId": "TurnOffSteeringMode", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode" }Pour d'autres exemples d'utilisation de cette commande, consultezCréation d'une ressource de commande.
-
-
Récupérez les informations relatives à la commande
Exécutez la commande suivante pour récupérer des informations sur la commande, où se
command-idtrouve l'ID de commande dans le résultat de l'create-commandopération ci-dessus.Note
Si vous créez plusieurs commandes, vous pouvez utiliser l'
ListCommandsAPI pour répertorier toutes les commandes de votre compte, puis utiliser l'GetCommandAPI pour obtenir des informations supplémentaires sur une commande spécifique. Pour de plus amples informations, veuillez consulter Répertorier les commandes de votre compte.aws iot get-command --command-idTurnOffSteeringModeL'exécution de cette commande génère la réponse suivante. Vous verrez l'heure à laquelle la commande a été créée et quand elle a été mise à jour pour la dernière fois, les paramètres que vous avez spécifiés et si la commande peut être exécutée sur l'appareil.
{ "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 }Pour d'autres exemples d'utilisation de cette commande, consultezRécupérer des informations sur une commande.
-
Lancer l'exécution de la commande
Exécutez la commande suivante pour commencer à exécuter la commande, où se
command-arntrouve l'ARN de la commande dans le résultat de l'get-commandopération ci-dessus.target-arnIl s'agit de l'ARN de l'appareil cible pour lequel vous exécutez la commande, par exemple.myVehicleDans cet exemple, puisque vous avez fourni des valeurs par défaut pour les paramètres lors de la création de la commande, la
start-command-executionCLI peut utiliser ces valeurs lors de l'exécution de la commande. Vous pouvez également choisir de remplacer la valeur par défaut en spécifiant une valeur différente pour les paramètres lorsque vous utilisez 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/myVehicleL'exécution de cette commande renvoie un ID d'exécution de commande. Vous pouvez utiliser cet ID pour demander le statut, les détails et l'historique de l'exécution des commandes.
{ "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542" }Pour des exemples supplémentaires d'utilisation de la CLI, consultezEnvoyer une commande (AWS CLI).
-
Récupère les informations relatives à l'exécution de la commande
Exécutez la commande suivante pour récupérer les informations relatives à la commande que vous avez exécutée sur le périphérique cible. Spécifiez le
execution-id, que vous avez obtenu comme résultat de l'start-command-executionopération ci-dessus, et letarget-arn, qui est l'ARN de l'appareil que vous ciblez.Note
-
Pour obtenir les dernières informations d'état, vos appareils doivent avoir publié les informations d'état mises à jour dans la rubrique de réponse réservée MQTT pour les commandes utilisant l'API
UpdateCommandExecutionMQTT. Pour de plus amples informations, veuillez consulter Mettre à jour le résultat d'exécution des commandes. -
Si vous lancez plusieurs exécutions de commandes, vous pouvez utiliser l'
ListCommandExecutionsAPI pour répertorier toutes les exécutions de commandes de votre compte, puis utiliser l'GetCommandExecutionAPI pour obtenir des informations supplémentaires sur une exécution spécifique. Pour de plus amples informations, veuillez consulter Répertorier les exécutions de commandes dans votre compte.
aws iot get-command-execution \ --execution-id<"07e4b780-7eca-4ffd-b772-b76358da5542">\ --target-arn arn:aws:iot:us-east-1:<account>:thing/myVehicleL'exécution de cette commande renvoie des informations sur l'exécution de la commande, son statut, l'heure à laquelle elle a commencé à s'exécuter et l'heure à laquelle elle s'est terminée. Par exemple, la réponse suivante indique que l'exécution de la commande a réussi sur l'équipement cible et que le mode de direction a été désactivé.
{ "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" } }' } -
Nettoyage
Maintenant que vous avez créé une commande et que vous l'avez exécutée sur votre appareil, vous pouvez la supprimer si vous n'avez plus l'intention de l'utiliser. Toutes les exécutions de commandes en cours continueront de s'exécuter sans être affectées par la demande de suppression.
Note
Vous pouvez également désactiver une commande si elle est obsolète et vous devrez peut-être l'utiliser ultérieurement pour l'exécuter sur le périphérique cible.
-
(Facultatif) Déprécier la ressource de commande
Exécutez la commande suivante pour la rendre obsolète, où se
command-idtrouve l'ID de commande dans le résultat de l'get-commandopération ci-dessus.aws iot update-command \ --command-idTurnOffSteeringMode\ --deprecatedL'exécution de cette commande renvoie un résultat indiquant que la commande est obsolète. Vous pouvez également utiliser la CLI pour restaurer la commande.
Note
Vous pouvez également utiliser la
update-commandCLI pour mettre à jour le nom d'affichage et la description d'une commande. Pour plus d’informations, consultez Mettre à jour ou rendre obsolète une ressource de commande.{ "commandId": "TurnOffSteeringMode", "deprecated": true, "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00" } -
Supprimer la commande
Exécutez la commande suivante pour supprimer la commande, spécifiée par le
command-id.Note
L'action de suppression est permanente et ne peut pas être annulée.
aws iot delete-command --command-idTurnOffSteeringModeSi la demande de suppression aboutit, vous verrez un HTTP
statusCodede 202 ou 204 selon que vous avez marqué la commande comme obsolète ou non et selon la date à laquelle elle a été abandonnée. Pour plus d'informations et pour voir un exemple, consultez Supprimer une ressource de commande.Vous pouvez utiliser la
get-commandCLI pour vérifier que la commande a été supprimée de votre compte. -
(Facultatif) Supprimez les exécutions de commandes
Par défaut, toutes les exécutions de commandes seront supprimées dans les six mois suivant leur création. Vous pouvez consulter ces informations à l'aide du
timeToLiveparamètre de l'GetCommandExecutionAPI.Sinon, si l'exécution de votre commande est devenue terminale, par exemple si votre statut d'exécution est l'un des
SUCCEEDEDsuivants :FAILED, ouREJECTED, vous pouvez supprimer l'exécution de la commande. Exécutez la commande suivante pour supprimer l'exécution, où seexecution-idtrouve l'ID d'exécution dans le résultat de l'get-command-executionopération ci-dessus.aws iot delete-command-execution \ --execution-id"07e4b780-7eca-4ffd-b772-b76358da5542"Vous pouvez utiliser la
get-command-executionCLI pour vérifier que l'exécution de la commande a été supprimée de votre compte.