Buat model detektor untuk mewakili status perangkat di AWS IoT Events - AWS IoT Events

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat model detektor untuk mewakili status perangkat di AWS IoT Events

DiBuat AWS IoT Events input untuk menangkap data perangkat, Anda membuat input berdasarkan pesan yang melaporkan data tekanan dari motor. Untuk melanjutkan contoh, berikut adalah model detektor yang merespons peristiwa tekanan berlebih pada motor.

Anda membuat dua status: "Normal“, dan"Dangerous”. Setiap detektor (instance) memasuki status Normal "" saat dibuat. Instance dibuat ketika input dengan nilai unik untuk key "motorid" tiba.

Jika instance detektor menerima pembacaan tekanan 70 atau lebih besar, ia memasuki status Dangerous "" dan mengirim SNS pesan Amazon sebagai peringatan. Jika pembacaan tekanan kembali normal (kurang dari 70) untuk tiga input berturut-turut, detektor kembali ke status "Normal" dan SNS mengirim pesan Amazon lain sebagai semua jelas.

Model detektor contoh ini mengasumsikan Anda telah membuat dua SNS topik Amazon yang Amazon Resource Names (ARNs) ditampilkan dalam definisi sebagai "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" dan"targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction".

Untuk informasi selengkapnya, lihat Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon dan, lebih khusus lagi, dokumentasi CreateTopicoperasi di APIReferensi Layanan Pemberitahuan Sederhana Amazon.

Contoh ini juga mengasumsikan Anda telah membuat peran AWS Identity and Access Management (IAM) dengan izin yang sesuai. ARNPeran ini ditunjukkan dalam definisi model detektor sebagai"roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole". Ikuti langkah-langkah Menyiapkan izin untuk AWS IoT Events untuk membuat peran ini dan salin peran di tempat yang sesuai dalam definisi model detektor. ARN

Anda dapat membuat model detektor menggunakan AWS CLI perintah berikut.

aws iotevents create-detector-model --cli-input-json file://motorDetectorModel.json

File "motorDetectorModel.json" berisi yang berikut ini.

{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "key" : "motorid", "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }