Emplacement - AWS IoT Core

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.

Emplacement

L'action Location (location) envoie vos données de localisation géographique à Amazon Location Service.

Prérequis

Cette action réglementaire est assortie des exigences suivantes :

  • Rôle IAM qui AWS IoT peut assumer la réalisation de l'geo:BatchUpdateDevicePositionopération. Pour plus d’informations, consultez Accorder à une AWS IoT règle l'accès dont elle a besoin.

    Dans la AWS IoT console, vous pouvez choisir ou créer un rôle pour autoriser l'exécution AWS IoT de cette action de règle.

Paramètres

Lorsque vous créez une AWS IoT règle avec cette action, vous devez spécifier les informations suivantes :

deviceId

ID unique de l'appareil fournissant les données de localisation. Pour plus d'informations, veuillez consulter la DeviceId de l’ Amazon Location Service API Reference.

Prend en charge les modèles de substitution : Oui

latitude

Chaîne qui correspond à une valeur double représentant la latitude de l'emplacement de l'appareil.

Prend en charge les modèles de substitution : Oui

longitude

Chaîne qui correspond à une valeur double représentant la longitude de l'emplacement de l'appareil.

Prend en charge les modèles de substitution : Oui

roleArn

Rôle IAM qui autorise l'accès au domaine Amazon Location Service. Pour plus d’informations, consultez Prérequis.

timestamp

Heure à laquelle les données de localisation ont été échantillonnées. La valeur par défaut est l'heure à laquelle le message MQTT a été traité.

La timestamp valeur se compose des deux valeurs suivantes :

  • value: Expression qui renvoie une valeur temporelle de longue époque. Vous pouvez utiliser cette time_to_epoch (Chaîne, Chaîne) fonction pour créer un horodatage valide à partir d'une valeur de date ou d'heure transmise dans la charge utile du message. Prend en charge les modèles de substitution : Oui

  • unit: (Facultatif) La précision de la valeur d'horodatage résultant de l'expression décrite à la section value. Valeurs valides: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS L’argument par défaut est MILLISECONDS. Supporte les modèles de substitution : API et AWS CLI uniquement.

trackerName

Nom de la ressource de suivi Amazon Location dans laquelle l'emplacement est mis à jour. Pour plus d'informations, consultez Tracker dans le guide du développeur d'Amazon Location Service.

Supporte les modèles de substitution : API et AWS CLI uniquement

Exemples

L'exemple JSON suivant définit une action de localisation dans une AWS IoT règle.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "location": { "roleArn": "arn:aws:iam::123454962127:role/service-role/ExampleRole", "trackerName": "MyTracker", "deviceId": "001", "sampleTime": { "value": "${timestamp()}", "unit": "MILLISECONDS" }, "latitude": "-12.3456", "longitude": "65.4321" } } ] } }

L'exemple JSON suivant définit une action de localisation avec des modèles de substitution dans une AWS IoT règle.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "location": { "roleArn": "arn:aws:iam::123456789012:role/service-role/ExampleRole", "trackerName": "${TrackerName}", "deviceId": "${DeviceID}", "timestamp": { "value": "${timestamp()}", "unit": "MILLISECONDS" }, "latitude": "${get(position, 0)}", "longitude": "${get(position, 1)}" } } ] } }

L'exemple de charge utile MQTT suivant montre comment les modèles de substitution de l'exemple précédent accèdent aux données. Vous pouvez utiliser la commande get-device-position-historyCLI pour vérifier que les données de charge utile MQTT sont fournies dans votre outil de localisation.

{ "TrackerName": "mytracker", "DeviceID": "001", "position": [ "-12.3456", "65.4321" ] }
aws location get-device-position-history --device-id 001 --tracker-name mytracker
{ "DevicePositions": [ { "DeviceId": "001", "Position": [ -12.3456, 65.4321 ], "ReceivedTime": "2022-11-11T01:31:54.464000+00:00", "SampleTime": "2022-11-11T01:31:54.308000+00:00" } ] }

Consultez aussi