Ubicazione - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ubicazione

L'operazione (location) Posizione instrada i dati sulla posizione geografica al servizio di posizione Amazon.

Requisiti

Questa operazione della regola presenta i seguenti requisiti:

  • Un ruolo IAM che AWS IoT può assumere per eseguire l'geo:BatchUpdateDevicePositionoperazione. Per ulteriori informazioni, consulta Concedere a qualsiasi AWS IoT regola l'accesso richiesto.

    Nella AWS IoT console, puoi scegliere o creare un ruolo che consenta di AWS IoT eseguire questa azione relativa alla regola.

Parametri

Quando si crea una AWS IoT regola con questa azione, è necessario specificare le seguenti informazioni:

deviceId

L'ID univoco del dispositivo che fornisce i dati sulla posizione. Per ulteriori informazioni, consulta DeviceId dalla Documentazione di riferimento delle API del servizio di posizione Amazon.

Supporta modelli di sostituzione: sì

latitude

Una stringa che restituisce un valore doppio che rappresenta la latitudine della posizione del dispositivo.

Supporta modelli di sostituzione: sì

longitude

Una stringa che restituisce un valore doppio che rappresenta la longitudine della posizione del dispositivo.

Supporta modelli di sostituzione: sì

roleArn

Il ruolo IAM che permette di accedere al dominio del servizio di posizione Amazon. Per ulteriori informazioni, consulta Requisiti.

timestamp

L'ora in cui i dati sulla posizione sono stati campionati. Il valore predefinito è l'ora in cui è stato elaborato il messaggio MQTT.

Il valore timestamp è composto dai due valori seguenti:

  • value: un'espressione che restituisce un valore temporale periodo lungo. Puoi utilizzare la funzione time_to_epoch(String, String) per creare un timestamp valido da un valore di data o ora passato nel payload del messaggio. Supporta modelli di sostituzione: Sì.

  • unit: (facoltativo) la precisione del valore timestamp risultante dall'espressione descritta in value. Valori validi: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. Il valore predefinito è MILLISECONDS. Supporta modelli sostitutivi: solo API. AWS CLI

trackerName

Il nome della risorsa tracker nel servizio di posizione Amazon in cui la posizione viene aggiornata. Per ulteriori informazioni, consulta Tracker nella Guida per gli sviluppatori del servizio di posizione Amazon.

Supporta modelli sostitutivi: API e solo AWS CLI

Esempi

Il seguente esempio JSON definisce un'azione Location in una regola. AWS IoT

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

Il seguente esempio JSON definisce un'azione Location con modelli di sostituzione in una regola. AWS IoT

{ "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)}" } } ] } }

Il seguente esempio di payload MQTT mostra in che modo i modelli di sostituzione nell'esempio precedente accedono ai dati. È possibile utilizzare il comando get-device-position-history della CLI per verificare che i dati del payload MQTT vengano distribuiti nel tracker di posizione.

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

Consulta anche