Anda dapat menggunakan fitur penerusan data dari mesin aturan IoT Platform untuk meneruskan data dari topik tertentu ke topik lain atau layanan Alibaba Cloud lainnya. Topik ini menjelaskan cara mengonfigurasi aturan penerusan data. Untuk mengonfigurasi aturan penerusan data, ikuti langkah-langkah berikut: buat aturan, tulis pernyataan SQL untuk pemrosesan data, tentukan tujuan penerusan data, dan tentukan tujuan untuk pesan kesalahan jika penerusan data gagal.
Prosedur
- Masuk ke Konsol IoT Platform.
Di halaman Overview, klik All environment. Di tab All environment, temukan instance yang ingin Anda kelola dan klik ID atau nama instance tersebut.
- Di panel navigasi di sebelah kiri, pilih .
Di halaman Data Forwarding, klik Create Rule.
PentingJika halaman Data Forwarding versi terbaru muncul, klik Back to Previous Version di pojok kanan atas halaman. Ketika halaman Data Forwarding versi sebelumnya muncul, klik Create Rule.
Konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Nama Aturan
Nama aturan penerusan data. Nama harus memiliki panjang 1 hingga 30 karakter, dan dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-).
Tipe Data
Format data yang ingin Anda proses menggunakan aturan. Nilai valid: JSON dan Binary.
CatatanFitur penerusan data memproses data berdasarkan topik. Anda harus memilih format data dalam topik yang ingin Anda proses.
Jika Anda memilih Binary, aturan tidak dapat digunakan untuk memproses pesan dari topik komunikasi dasar atau topik komunikasi Thing Specification Language (TSL). Aturan juga tidak dapat digunakan untuk meneruskan data ke Tablestore (OTS) atau ApsaraDB RDS.
Deskripsi Aturan
Deskripsi aturan.
Setelah aturan dibuat, halaman rule details akan muncul. Tulis pernyataan SQL untuk memproses pesan, tentukan tujuan penerusan data, dan tentukan tujuan untuk pesan kesalahan jika penerusan data gagal.
Klik Write SQL Statement untuk menulis pernyataan SQL yang digunakan memproses bidang pesan.
Untuk informasi lebih lanjut tentang cara menulis pernyataan SQL, lihat Pernyataan SQL dan Fungsi.
Parameter
Deskripsi
Ekspresi Kueri Aturan
Pernyataan SQL. Pernyataan SQL secara otomatis dibuat berdasarkan nilai yang Anda tentukan untuk parameter Field, Topic, dan Conditions (Opsional).
Bidang
Bidang pesan yang akan diproses. Parameter ini mengikuti kata kunci SELECT dalam pernyataan SQL.
Sebagai contoh, jika Anda memasukkan deviceName() as deviceName, bidang deviceName dalam pesan dipilih. Untuk informasi lebih lanjut tentang fungsi yang dapat digunakan dalam bidang, lihat Fungsi.
CatatanData topik komunikasi dasar dan topik komunikasi TSL berada dalam format JSON Alink. Sebelum data diteruskan ke mesin aturan, data diuraikan berdasarkan model TSL yang sesuai. Untuk informasi lebih lanjut tentang penguraian data, lihat Prosedur penerusan data. Untuk informasi lebih lanjut tentang format data yang diuraikan, lihat Format data. Saat Anda menulis pernyataan SQL, tentukan bidang berdasarkan format data yang diuraikan.
Topik
Topik sumber pesan yang akan diproses. Parameter ini mengikuti kata kunci FROM dalam pernyataan SQL. Untuk informasi lebih lanjut tentang topik opsional, lihat tabel Topik berikut.
PentingJika Anda mengatur parameter Data Type aturan ke Binary, atur parameter ini ke Custom.
Kondisi
Kondisi pemicu aturan. Parameter ini mengikuti kata kunci WHERE dalam pernyataan SQL.
Tabel 1. Topik Topik
Deskripsi
Referensi
Custom
Topik yang digunakan untuk meneruskan data dalam format kustom memiliki format yang sama dengan topik kustom. Formatnya adalah: /${productKey}/${deviceName}/user/${TopicShortName}.
${TopicShortName} menentukan kategori topik kustom, yaitu akhiran dari topik kustom.
Nilainya dapat berisi karakter wildcard, termasuk tanda plus (+) dan tanda pagar (#).
Semua perangkat (+): mencakup semua perangkat dari produk yang ditentukan.
/user/#: Menunjukkan semua topik dari perangkat yang ditentukan.
Device Status Change Notification
Topik yang digunakan untuk meneruskan notifikasi saat status perangkat berubah antara online dan offline. Format: /as/mqtt/status/${productKey}/${deviceName}.
TSL Data Reporting
Topik-topik berikut disediakan:
/${productKey}/${deviceName}/thing/event/property/post: Topik ini digunakan untuk meneruskan properti perangkat.
/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post: Topik ini digunakan untuk meneruskan peristiwa perangkat.
/${productKey}/${deviceName}/thing/property/batch/post: Topik ini digunakan untuk meneruskan properti perangkat dalam batch.
/${productKey}/${deviceName}/thing/event/batch/post: Topik ini digunakan untuk meneruskan peristiwa perangkat dalam batch.
/${productKey}/${deviceName}/thing/downlink/reply/message: Topik ini digunakan untuk meneruskan pesan yang dikembalikan oleh perangkat sebagai respons terhadap perintah dari IoT Platform.
Topik-topik berikut digunakan untuk mengirimkan data mentah perangkat:
/sys/${productKey}/${deviceName}/thing/event/property/post: Topik ini digunakan untuk mengirimkan properti perangkat./sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/postdan/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post: Topik-topik ini digunakan untuk mengirimkan peristiwa perangkat./sys/${productKey}/${deviceName}/thing/event/property/batch/post: Topik ini digunakan untuk mengirimkan properti dan peristiwa perangkat dalam batch.
Device Changes Throughout Lifecycle
Topik yang digunakan untuk meneruskan pesan ketika perangkat dibuat, dihapus, dinonaktifkan, atau diaktifkan. Format:
/${productKey}/${deviceName}/thing/lifecycle.Sub-Device Data Report Detected by Gateway
Topik ini digunakan untuk mengirimkan dan meneruskan informasi tentang sub-perangkat baru ketika gateway mendeteksi sub-perangkat. Topik ini bersifat spesifik untuk gateway dengan format: /${productKey}/${deviceName}/thing/list/found
.Device Topological Relation Changes
Topik yang digunakan untuk meneruskan notifikasi saat hubungan topologi antara sub-perangkat dan gateway dibuat atau dihapus. Topik ini bersifat spesifik untuk gateway. Format: /${productKey}/${deviceName}/thing/topo/lifecycle.
/sys/${productKey}/${deviceName}/thing/topo/change: Topik ini digunakan untuk mengirimkan data perangkat.Device tag change
Topik yang digunakan untuk meneruskan pesan saat tag perangkat diubah. Format: /${productKey}/${deviceName}/thing/deviceinfo/update.
/sys/${productKey}/${deviceName}/thing/deviceinfo/update: Topik ini digunakan untuk mengirimkan data perangkat.TSL Historical Data Reporting
Topik-topik berikut disediakan:
/${productKey}/${deviceName}/thing/event/property/history/post: Topik ini digunakan untuk meneruskan properti historis./${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post: Topik ini digunakan untuk meneruskan peristiwa historis.
/sys/${productKey}/${deviceName}/thing/event/property/history/post: Topik ini digunakan untuk mengirimkan data historis TSL.Device status notification
Topik-topik berikut disediakan:
/${productKey}/${deviceName}/ota/upgrade: Topik ini digunakan untuk meneruskan hasil pembaruan over-the-air (OTA).
/${productKey}/${deviceName}/ota/progress/post: Topik ini digunakan untuk melaporkan kemajuan pembaruan.
Topik-topik sebelumnya sesuai dengan topik berikut: /ota/device/progress/${productKey}/${deviceName}. Topik ini digunakan untuk mengirimkan kemajuan pembaruan.
Submit a module version number
Topik yang digunakan untuk meneruskan pesan saat nomor versi modul OTA perangkat diubah. Format: /${productKey}/${deviceName}/ota/version/post.
Topik sebelumnya sesuai dengan topik berikut: /ota/device/inform/${productKey}/${deviceName}. Topik ini digunakan untuk mengirimkan nomor versi modul OTA.
Batch status notification
Topik tempat IoT Platform mengirimkan pesan ketika status batch pembaruan OTA berubah. Format: /${productKey}/${packageId}/${jobId}/ota/job/status.
Job Event
/sys/uid/${uid}/distribution/${jobId}/lifecycle: Topik yang digunakan untuk meneruskan notifikasi ketika status pekerjaan perangkat berubah.CatatanNama tugas migrasi instance sama dengan nama produk yang ingin Anda migrasikan.
Di bagian Forward Data, klik Add Operation untuk menentukan tujuan penerusan data. Untuk informasi lebih lanjut tentang cara mengonfigurasi fitur penerusan data, lihat topik terkait dalam direktori Contoh-contoh penerusan data.
CatatanAnda dapat membuat hingga 10 operasi penerusan data untuk setiap aturan.
Jika penerusan data gagal karena pengecualian dalam layanan cloud tujuan, IoT Platform melakukan salah satu dari tindakan berikut:
Ketika IoT Platform meneruskan data ke layanan cloud, seperti Message Queue for Apache RocketMQ, ApsaraDB RDS, dan ApsaraDB for Lindorm, akses ke layanan cloud tersebut mungkin gagal karena perubahan sumber daya. Dalam hal ini, IoT Platform menghentikan penerusan data dan mengubah status aturan terkait menjadi Abnormal. Anda harus menentukan tujuan baru untuk penerusan data.
Untuk pengecualian lainnya, IoT Platform mencoba kembali tiga kali dengan interval 1 detik, 3 detik, dan 10 detik. Kebijakan percobaan ulang mungkin bervariasi berdasarkan skenario. Jika semua percobaan ulang gagal, pesan akan dibuang. Jika bisnis Anda memiliki persyaratan tinggi untuk keandalan pesan, Anda dapat menambahkan operasi kesalahan dan meneruskan pesan kesalahan ke layanan cloud lainnya.
Di bagian Teruskan Data Kesalahan, klik Add Error Operation. Kemudian, konfigurasikan parameter untuk meneruskan pesan kesalahan ke tujuan yang ditentukan setelah semua percobaan ulang gagal.
PentingAnda hanya dapat menambahkan satu operasi penanganan kesalahan untuk setiap aturan.
Operasi normal dan operasi penanganan kesalahan tidak dapat meneruskan pesan ke tujuan yang sama. Sebagai contoh, data normal dan data kesalahan tidak dapat diteruskan ke OTS pada saat yang bersamaan.
Jika pesan kesalahan gagal diteruskan, tidak ada percobaan ulang yang dilakukan.
Pesan kesalahan hanya dihasilkan jika mesin aturan gagal meneruskan data karena masalah layanan cloud lainnya.
Jika pesan gagal diteruskan ke layanan cloud, IoT Platform mencoba kembali untuk meneruskan pesan tersebut. Jika percobaan ulang gagal, pesan kesalahan diteruskan berdasarkan operasi kesalahan yang Anda tentukan untuk penerusan data.
Contoh pesan kesalahan:
{ "ruleName":"", "topic":"", "productKey":"", "deviceName":"", "messageId":"", "base64OriginalPayload":"", "failures":[ { "actionType":"OTS", "actionRegion":"cn-shanghai", "actionResource":"table1", "errorMessage":"" }, { "actionType":"RDS", "actionRegion":"cn-shanghai", "actionResource":"instance1/table1", "errorMessage":"" } ] }Tabel berikut menjelaskan parameter pesan kesalahan.
Parameter
Deskripsi
ruleName
Nama aturan pemantauan.
topic
Topik sumber pesan.
productKey
ProductKey dari produk.
deviceName
DeviceName dari perangkat.
messageId
ID pesan yang dikirim dari IoT Platform.
base64OriginalPayload
Data mentah yang dikodekan Base64.
failures
Rincian kesalahan. Beberapa kesalahan mungkin terjadi.
actionType
Tipe operasi yang gagal.
actionRegion
Wilayah tempat kesalahan terjadi.
actionResource
Layanan tujuan tempat kesalahan terjadi.
errorMessage
Pesan kesalahan.
Pergi ke halaman Data Forwarding. Temukan aturan yang telah Anda konfigurasi dan klik Start di kolom Tindakan. Setelah aturan diaktifkan, data diteruskan berdasarkan aturan.
Anda juga dapat melakukan operasi tertentu pada aturan. Tabel berikut menjelaskan operasi tersebut.
Operasi
Deskripsi
Lihat
Klik View di kolom Tindakan untuk pergi ke halaman Aturan Penerusan Data. Kemudian, ubah pengaturan aturan. Sebagai contoh, Anda dapat mengubah atau menghapus topik sumber data atau tujuan penerusan data.
Hapus
Klik Hapus di kolom Tindakan untuk menghapus aturan.
PentingAnda tidak dapat menghapus aturan yang berada dalam status Berjalan.
Dihentikan
Klik Stop di kolom Tindakan untuk menonaktifkan aturan.
PeringatanJika satu atau beberapa aplikasi Anda memerlukan data perangkat yang diteruskan menggunakan aturan tetapi aturan tersebut dihapus atau dinonaktifkan, atau tujuan penerusan data aturan dihapus, layanan Anda mungkin menjadi tidak tersedia. Akibatnya, bisnis Anda mungkin terganggu. Lanjutkan dengan hati-hati.
Apa yang harus dilakukan selanjutnya
Di halaman rule details, Anda dapat melihat status aturan, memeriksa apakah tujuan penerusan data telah dikonfigurasi, dan memeriksa apakah data diteruskan ke tujuan penerusan data sesuai harapan.