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.
Didacticiel de démarrage
Ce didacticiel explique comment utiliser l'indexation de flotte pour indexer vos données de localisation. Pour simplifier, vous créez un objet pour représenter votre appareil et vous stockez les données de localisation dans une shadow nommée, vous mettez à jour la configuration d'indexation des objets pour l'indexation des emplacements et vous exécutez des exemples de géorequêtes pour rechercher des appareils dans une limite radiale.
Ce didacticiel vous prendra environ 15 minutes.
Dans cette rubrique :
Prérequis
-
Installez la dernière version de AWS CLI.
-
Familiarisez-vous avec l'indexation des emplacements et les géorequêtes, la gestion de l'indexation des objets et la syntaxe des requêtes.
Créez des objets et shadow
Vous créez un objet pour représenter votre appareil et une shadow nommée pour stocker ses données de localisation (coordonnées 47.61564, -122.33584).
-
Exécutez la commande suivante pour créer votre objet qui représente votre vélo nommé Bike-1. Pour plus d'informations sur la façon de créer un objet en utilisant AWS CLI, voir create-thing from AWS CLIReference.
aws iot create-thing --thing-name "Bike-1" \ --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'
Le résultat de cette commande peut ressembler à ce qui suit :
{ "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" }
-
Exécutez la commande suivante pour créer une shadow nommée afin de stocker les données de localisation du Bike-1 (coordonnées 47.61564, -122.33584). Pour plus d'informations sur la façon de créer une ombre nommée à l'aide de AWS CLI, reportez-vous update-thing-shadowà la section AWS CLIRéférence.
aws iot-data update-thing-shadow \ --thing-name Bike-1 \ --shadow-name Bike1-shadow \ --cli-binary-format raw-in-base64-out \ --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \ "output.txt" \
Cette commande ne produit aucune sortie. Pour afficher l'ombre nommée que vous avez créée, vous pouvez exécuter la commande CLI list-named-shadows-for-thing.
aws iot-data list-named-shadows-for-thing --thing-name Bike-1
Le résultat de cette commande peut ressembler à ce qui suit :
{ "results": [ "Bike1-shadow" ], "timestamp": 1699574309 }
Mettre à jour la configuration de l'indexation des objets
Pour indexer vos données de localisation, vous devez mettre à jour la configuration d'indexation de votre objet afin d'inclure les données de localisation. Dans la mesure où vos données de localisation sont stockées dans une shadow nommée dans ce didacticiel, définissez thingIndexingMode
sur REGISTRY
(au minimum), définissez namedShadowIndexingMode
sur ON
et ajoutez vos données de localisation à la configuration. Dans cet exemple, vous devez ajouter le nom de la shadow que vous avez nommée et le chemin des données de localisation de la shadow vers filter
.
-
Exécutez la commande pour mettre à jour votre configuration d'indexation pour l'indexation des emplacements.
aws iot update-indexing-configuration --cli-input-json '{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "filter": { "namedShadowNames": ["Bike1-shadow"], "geoLocations":[{ "name":"shadow.name.Bike1-shadow.reported.coordinates" }] }, "customFields": [ { "name":"attributes.battery", "type":"Number"}] } }'
La commande ne génère pas de sortie. Vous devrez peut-être attendre un moment jusqu'à ce que la mise à jour soit terminée. Pour vérifier l’état, exécutez la commande CLI describe-index. Si le message
indexStatus
indique :ACTIVE
, la mise à jour de l'indexation de votre objet est terminée. -
Exécutez la commande pour vérifier votre configuration d'indexation. Cette étape est facultative.
aws iot get-indexing-configuration
Le résultat se présentera comme suit :
{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "managedFields": [ { "name": "shadow.name.*.hasDelta", "type": "Boolean" }, { "name": "registry.version", "type": "Number" }, { "name": "registry.thingTypeName", "type": "String" }, { "name": "registry.thingGroupNames", "type": "String" }, { "name": "shadow.name.*.version", "type": "Number" }, { "name": "thingName", "type": "String" }, { "name": "thingId", "type": "String" } ], "customFields": [ { "name": "attributes.battery", "type": "Number" } ], "filter": { "namedShadowNames": [ "Bike1-shadow" ], "geoLocations": [ { "name": "shadow.name.Bike1-shadow.reported.coordinates", "order": "LatLon" } ] } }, "thingGroupIndexingConfiguration": { "thingGroupIndexingMode": "OFF" } }
Exécuter une géorequête
Vous avez maintenant mis à jour la configuration d'indexation de vos objets pour inclure les données de localisation. Essayez de créer des géorequêtes et de les exécuter pour voir si vous pouvez obtenir les résultats de recherche souhaités. Une doit respecter la Syntaxe de requête. Vous trouverez des exemples de géorequêtes utiles dans Exemples de géorequêtes.
Dans l'exemple de commande suivant, vous utilisez la géorequête shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km
pour rechercher des appareils situés à une distance radiale de 15,5 km du point central avec des coordonnées (47.6204, -122.3491).
aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
Étant donné que vous disposez d'un appareil situé aux coordonnées « lat »: 47.6153, « lon »: -122.3333, qui se situe à une distance de 15,5 km du point central, vous devriez pouvoir voir cet appareil (Bike-1) dans la sortie. Le résultat se présentera comme suit :
{ "things": [ { "thingName": "Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df", "attributes": { "acqDate": "06/09/23", "battery": "35", "model": "OEM-2302-12" }, "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}" } ] }
Pour plus d'informations, voir Indexation des données de localisation.