Ingérer des MQTT messages dans AWS IoT Events - AWS IoT Events

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.

Ingérer des MQTT messages dans AWS IoT Events

Si les ressources informatiques de vos capteurs ne peuvent pas utiliser le "BatchPutMessage"API, mais peuvent envoyer leurs données au courtier de AWS IoT Core messages à l'aide d'un MQTT client léger, vous pouvez créer une règle de AWS IoT Core sujet pour rediriger les données des messages vers une AWS IoT Events entrée. Ce qui suit est une définition d'une règle de AWS IoT Events sujet qui prend les champs de "sensorId" saisie "areaId" et du MQTT sujet, et le "sensorData.temperature" champ du champ de charge utile "temp" du message, et ingère ces données dans notre. AWS IoT Events "temperatureInput"

CLIcommande :

aws iot create-topic-rule --cli-input-json file://temperatureTopicRule.json

Dossier : seedSetDesiredTemp.json

{ "ruleName": "temperatureTopicRule", "topicRulePayload": { "sql": "SELECT topic(3) as areaId, topic(4) as sensorId, temp as sensorData.temperature FROM 'update/temperature/#'", "description": "Ingest temperature sensor messages into IoT Events", "actions": [ { "iotEvents": { "inputName": "temperatureInput", "roleArn": "arn:aws:iam::123456789012:role/service-role/anotheRole" } } ], "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23" } }

Réponse : [aucune]

Si le capteur envoie un message sur le sujet "update/temperature/Area51/03" avec la charge utile suivante.

{ "temp": 24.5 }

Il en résulte que les données sont ingérées AWS IoT Events comme si l'"BatchPutMessage"APIappel suivant avait été effectué.

aws iotevents-data batch-put-message --cli-input-json file://spoofExample.json --cli-binary-format raw-in-base64-out

Dossier : spoofExample.json

{ "messages": [ { "messageId": "54321", "inputName": "temperatureInput", "payload": "{\"sensorId\": \"03\", \"areaId\": \"Area51\", \"sensorData\": {\"temperature\": 24.5} }" } ] }