MQTTNachrichten aufnehmen in AWS IoT Events - AWS IoT Events

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

MQTTNachrichten aufnehmen in AWS IoT Events

Wenn Ihre Sensordatenverarbeitungsressourcen das nicht verwenden können "BatchPutMessage"API, ihre Daten jedoch mithilfe eines MQTT Lightweight-Clients an den AWS IoT Core Message Broker senden können, können Sie eine AWS IoT Core Themenregel erstellen, um Nachrichtendaten an eine AWS IoT Events Eingabe umzuleiten. Im Folgenden finden Sie eine Definition einer AWS IoT Events Themenregel, die die Felder "areaId" und die "sensorId" Eingabefelder aus dem MQTT Thema und das "sensorData.temperature" Feld aus dem "temp" Nachrichten-Payload-Feld verwendet und diese Daten in unsere aufnimmt. AWS IoT Events "temperatureInput"

CLIBefehl:

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

Datei: 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" } }

Antwort: [keine]

Wenn der Sensor eine Nachricht zum Thema "update/temperature/Area51/03" mit der folgenden Nutzlast sendet.

{ "temp": 24.5 }

Dies führt dazu, dass Daten aufgenommen werden, AWS IoT Events als ob der folgende "BatchPutMessage" API Anruf getätigt worden wäre.

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

Datei: spoofExample.json

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