Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menelan MQTT pesan di AWS IoT Events
Jika sumber daya komputasi sensor Anda tidak dapat menggunakan "BatchPutMessage"
API, tetapi dapat mengirim datanya ke broker AWS IoT Core pesan menggunakan MQTT klien ringan, Anda dapat membuat aturan AWS IoT Core topik untuk mengarahkan data pesan ke AWS IoT Events input. Berikut ini adalah definisi aturan AWS IoT Events topik yang mengambil "areaId"
dan "sensorId"
memasukkan bidang dari MQTT topik, dan bidang dari "sensorData.temperature"
bidang payload "temp"
pesan, dan memasukkan data ini ke dalam kami. AWS IoT Events "temperatureInput"
CLIperintah:
aws iot create-topic-rule --cli-input-json file://temperatureTopicRule.json
Berkas: 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" } }
Tanggapan: [tidak ada]
Jika sensor mengirim pesan pada topik "update/temperature/Area51/03"
dengan payload berikut.
{ "temp": 24.5 }
Ini menghasilkan data yang dicerna AWS IoT Events seolah-olah "BatchPutMessage"
API panggilan berikut telah dilakukan.
aws iotevents-data batch-put-message --cli-input-json file://spoofExample.json --cli-binary-format raw-in-base64-out
Berkas: spoofExample.json
{ "messages": [ { "messageId": "54321", "inputName": "temperatureInput", "payload": "{\"sensorId\": \"03\", \"areaId\": \"Area51\", \"sensorData\": {\"temperature\": 24.5} }" } ] }