Pesan peristiwa koneksi perangkat dari Azure IoT Hub menggunakan Azure Cosmos DB

Azure Event Grid membantu Anda membangun aplikasi berbasis peristiwa dan dengan mudah mengintegrasikan peristiwa IoT dalam solusi bisnis Anda. Artikel ini memandu Anda melalui penyiapan menggunakan Cosmos DB, Logic App, IoT Hub Events, dan Raspberry Pi yang disimulasikan untuk mengumpulkan dan menyimpan peristiwa koneksi dan pemutusan perangkat.

Sejak perangkat Anda berjalan, urutan operasi akan diaktifkan:

  1. Perangkat Pi, menggunakan kunci perangkat hub IoT Anda, dimulai lalu dihentikan

  2. Peristiwa IoT Hub menangkap aktivitas perangkat, lalu mengirim permintaan HTTP ke Aplikasi Logika Anda

  3. Aplikasi Logika memproses permintaan HTTP berdasarkan kondisi yang Anda tetapkan

  4. Logic App mencatat koneksi atau peristiwa pemutusan ke dalam dokumen baru di Cosmos DB

    Cuplikan layar penyiapan yang akan kita buat untuk artikel ini. Penyetelan ini memperlihatkan bagaimana semua layanan dan perangkat tersambung.

Prasyarat

  • Akun Azure Cosmos DB untuk NoSQL yang aktif. Jika Anda belum membuatnya, lihat Membuat akun database untuk panduan.

  • Kumpulan dalam database Anda. Lihat Menambahkan koleksi untuk panduan. Saat Anda membuat koleksi, gunakan /id untuk kunci partisi.

  • Langganan Azure. Jika Anda belum berlangganan Azure, buat akun gratis sebelum memulai.

  • Hub IoT di bawah langganan Azure Anda. Buat satu dengan CLI atau portal Azure.

Buat aplikasi logika

Mari kita buat aplikasi logika dan tambahkan pemicu Event Grid yang memantau grup sumber daya untuk komputer virtual Anda.

Membuat sumber daya aplikasi logika

  1. Di portal Azure, pilih +Buat sumber daya, pilih Integrasi lalu Aplikasi Logika.

    Cuplikan layar cara menemukan dan memilih aplikasi logika di portal Azure.

  2. Lengkapi formulir untuk membuat Aplikasi Logika baru yang mencakup:

    • Langganan Anda

    • Grup sumber daya Anda (atau buat yang baru)

    • Nama Aplikasi Logika yang unik di langganan Anda

    • Wilayah hub IoT Anda

    • Tidak untuk mengaktifkan analitik log

    • Jenis paket Konsumsi

      Catatan

      Jenis paket Konsumsi adalah opsi yang memungkinkan perancang aplikasi Logika di UI. Jika Anda memilih Standar (default), maka Anda harus membuat alur kerja baru agar perancang aplikasi Logika tersedia.

    Cuplikan layar cara membuat aplikasi logika di portal Azure.

  3. Pilih Tinjau + Buat untuk meninjau konfigurasi Anda, lalu pilih Buat untuk membuat aplikasi logika.

  4. Sekarang Anda telah membuat sumber daya Azure untuk aplikasi logika. Setelah Azure menyebarkan aplikasi logika Anda, pilih Buka sumber daya. Perancang aplikasi logika menunjukkan templat untuk pola umum sehingga Anda dapat memulai lebih cepat.

  5. Di perancang Aplikasi logika, gulir hingga Anda melihat bagian Templat , lalu pilih Aplikasi Logika Kosong sehingga Anda dapat membuat aplikasi logika dari awal.

Memilih pemicu

Pemicu merupakan peristiwa tertentu yang memulai aplikasi logika Anda. Untuk tutorial ini, pemicu yang mengatur alur kerja menerima permintaan melalui HTTP.

  1. Di bilah pencarian pemicu dan konektor, ketikHTTP.

  2. Pilih permintaan Saat permintaan HTTP diterima sebagai pemicu.

    Cuplikan layar cara menemukan pemicu permintaan HTTP tertentu.

  3. Pilih Gunakan sampel muatan untuk membuat skema.

    Cuplikan layar cara menggunakan payload sampel untuk menghasilkan skema.

  4. Tempelkan contoh kode JSON berikut ke dalam kotak teks, lalu pilih Selesai.

    JSON ini hanya digunakan sebagai templat, sehingga nilai yang tepat tidak penting.

    [{
     "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd",
     "topic":
       "/SUBSCRIPTIONS/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB",
     "subject": "devices/Demo-Device-1",
     "eventType": "Microsoft.Devices.DeviceConnected",
     "eventTime": "2018-07-03T23:20:11.6921933+00:00",
     "data": {
       "deviceConnectionStateEventInfo": {
         "sequenceNumber":
           "000000000000000001D4132452F67CE200000002000000000000000000000001"
       },
       "hubName": "MYIOTHUB",
       "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e",
       "moduleId": ""
     },
     "dataVersion": "1",
     "metadataVersion": "1"
    }]
    

    Cuplikan layar sampel payload JSON yang ditempelkan ke dalam kotak teks di Azure.

Membuat kondisi

Kondisi membantu menjalankan tindakan tertentu setelah melewati kondisi tertentu tersebut. Untuk artikel ini, kondisinya adalah memeriksa apakah eventType tersambung perangkat atau perangkat terputus. Tindakan yang dijalankan ketika eventType tersebut benar adalah pembuatan dokumen di Azure Cosmos DB. Kondisi ini dibuat di perancang aplikasi Logika.

  1. Pilih + Langkah baru, lalu tab Bawaan , lalu temukan dan pilih kontrol yang disebut Kondisi.

  2. Dalam kondisi Anda, ubah Dan ke Atau, karena kami ingin menangkap peristiwa koneksi atau peristiwa pemutusan dalam satu penguraian.

  3. Pilih di dalam kotak Pilih nilai dan pop up muncul, memperlihatkan konten Dinamis — bidang yang bisa dipilih.

    • Pilih eventType. Popup ditutup dan Anda melihat Isi ditempatkan di Pilih output dari langkah sebelumnya, secara otomatis. Pilih Kondisi untuk membuka kembali pernyataan kondisional Anda.

    • Pertahankan sama dengan nilai.

    • Ketik microsoft.Devices.DeviceConnected sebagai nilai terakhir dari baris tersebut.

    • Pilih + Tambahkan untuk menambahkan baris lain.

    • Baris kedua ini mirip dengan baris pertama, kecuali kita mencari peristiwa pemutusan sambungan.

      Gunakan eventType, sama dengan, dan Microsoft.Devices.DeviceDisconnected untuk nilai baris.

      Cuplikan layar lengkap untuk Setiap kondisi.

  4. Dalam dialog jika benar, klik Tambahkan tindakan.

    Cuplikan layar kotak 'Jika benar' di Azure.

  5. Cari Cosmos DB dan pilih Azure Cosmos DB — Buat atau perbarui dokumen (V3)

    Cuplikan layar pencarian Untuk Azure Cosmos DB.

  6. Anda melihat panel Buat atau perbarui dokumen (V3). Masukkan nilai-nilai ini untuk bidang:

    Nama akun Azure Cosmos DB: {Tambahkan nama akun Anda}

    ID Database: ToDoList

    ID Koleksi: Items

    Dokumen: Pilih Current item dari daftar parameter konten dinamis

    Cuplikan layar memperlihatkan item Jalankan prosedur tersimpan (V3) dengan 'Tambahkan parameter baru' dipilih.

  7. Simpan aplikasi logika Anda.

Menyalin URL HTTP

Sebelum meninggalkan Logic Apps Designer, salin URL yang didengarkan oleh aplikasi logika Anda untuk pemicu. Anda menggunakan URL ini untuk mengonfigurasi Event Grid.

  1. Perluas kotak Konfigurasi pemicu Saat permintaan HTTP diterima dengan memilihnya.

  2. Salin nilai URL HTTP POST dengan memilih tombol salin di sampingnya.

    Cuplikan layar tempat menemukan URL HTTP untuk disalin.

  3. Simpan URL ini sehingga Anda dapat menggunakannya di bagian berikutnya.

Mengonfigurasi langganan untuk peristiwa IoT Hub

Di bagian ini, Anda mengonfigurasi IoT Hub untuk menerbitkan peristiwa saat terjadi.

  1. Di portal Azure, navigasi ke hub IoT Anda.

  2. PilihPeristiwa.

    Cuplikan layar tempat tombol Peristiwa berada di menu IoT Hub.

  3. Pilih + Langganan peristiwa.

    Buat langganan peristiwa baru

  4. Isi Detail Langganan Peristiwa: berikan Nama deskriptif dan pilih Skema Event Grid sebagai Skema Peristiwa.

  5. Buat Nama Topik Sistem untuk sumber daya hub IoT Anda.

  6. Isi bidang Jenis Peristiwa. Di daftar drop-down, pilih hanya Perangkat yang Tersambung dan Perangkat yang Terputus dari menu. Klik di tempat lain di layar untuk menutup daftar dan menyimpan pilihan Anda.

    Mengatur jenis peristiwa yang akan di cari

  7. Untuk Detail Titik Akhir, pilih Jenis Titik Akhir sebagai Web Hook dan klik pilih titik akhir dan tempelkan URL yang Anda salin dari aplikasi logika Anda dan konfirmasi pilihan.

    Memilih url titik akhir

  8. Formulir sekarang akan terlihat mirip dengan contoh berikut:

    Cuplikan layar formulir untuk membuat langganan peristiwa.

    Pilih Buat untuk menyimpan langganan peristiwa.

    Penting

    Tunggu beberapa menit hingga peristiwa Anda diproses sebelum menjalankan perangkat Anda. Setiap kali layanan Azure dibuat atau diubah, memulai langkah berikutnya dalam alur Anda terlalu cepat dapat mengakibatkan kesalahan yang tidak perlu. Misalnya, jika hub IoT Anda tidak dalam status aktif, hub IoT Anda tidak akan siap untuk menerima peristiwa. Periksa halaman Gambaran Umum hub IoT Anda untuk melihat apakah hub IoT Anda dalam keadaan aktif atau tidak. Jika tidak, Anda akan melihat peringatan di bagian atas halaman.

    Cuplikan layar kesalahan IoT Hub yang mengatakan tidak dalam status aktif.

Menjalankan perangkat dan mengamati peristiwa

Setelah langganan peristiwa Anda disiapkan, mari kita uji dengan menyambungkan perangkat.

Mendaftarkan perangkat di IoT Hub

  1. Dari IoT hub Anda, pilih Perangkat.

  2. Pilih + Tambahkan Perangkat di bagian atas panel.

  3. Untuk ID Perangkat, masukkan Demo-Device-1.

  4. Pilih Simpan.

    Cuplikan layar lokasi tombol Tambahkan Perangkat.

  5. Klik perangkat lagi; sekarang string koneksi dan kunci akan diisi. Salin dan simpan String Koneksi Utama untuk digunakan nanti.

    Cuplikan layar lokasi String Koneksi Utama untuk perangkat Anda.

Memulai simulator Raspberry Pi

Mari kita gunakan simulator web Raspberry Pi untuk menyimulasikan koneksi perangkat.

Memulai simulator Raspberry Pi

Menjalankan aplikasi contoh pada simulator web Raspberry Pi

Aplikasi sampel ini akan memicu peristiwa yang terhubung dengan perangkat.

  1. Di area pengodean, ganti tempat penampung di Baris 15 dengan string koneksi perangkat Azure IoT Hub yang Anda simpan di akhir bagian sebelumnya.

    Cuplikan layar tempat menambahkan string koneksi utama Anda di skrip Raspberry Pi.

  2. Jalankan aplikasi dengan memilih Jalankan.

    Anda melihat sesuatu yang mirip dengan output berikut yang menunjukkan data sensor dan pesan yang dikirim ke hub IoT Anda.

    Cuplikan layar apa yang diharapkan di konsol output Anda saat Anda menjalankan Raspberry Pi.

  3. Anda dapat memeriksa halaman Gambaran Umum Aplikasi Logika untuk memeriksa apakah logika Anda sedang dipicu. Ini akan mengatakan Berhasil atau Gagal. Memeriksa di sini memungkinkan Anda mengetahui status aplikasi logika Anda jika pemecahan masalah diperlukan. Harapkan penundaan 15-30 detik dari saat pemicu Anda berjalan. Jika Anda perlu memecahkan masalah aplikasi logika, lihat artikel Memecahkan masalah kesalahan ini.

    Cuplikan layar pembaruan status di halaman Gambaran Umum aplikasi logika Anda.

  4. Pilih Hentikan untuk menghentikan simulator, yang memicu peristiwa Perangkat Terputus . Kejadian ini akan masuk ke halaman Gambaran Umum Aplikasi Logika, sama seperti peristiwa koneksi yang dicatat di sana.

Anda sekarang telah menjalankan aplikasi sampel untuk mengumpulkan peristiwa koneksi dan pemutusan sambungan perangkat Anda, yang masuk ke hub IoT Anda.

Mengamati peristiwa di Azure Cosmos DB

Anda dapat melihat hasil aplikasi logika yang dijalankan di dokumen Cosmos DB Anda. Dokumen muncul di kumpulan Item Saat Anda merefresh halaman. Setiap peristiwa status koneksi menghasilkan dokumen baru yang diberi yang unik id. Gambar berikut menunjukkan dokumen yang dibuat saat perangkat dimulai (tersambung). Jenis peristiwa yang terhubung tercantum dalam output JSON.

Cuplikan layar peristiwa status koneksi yang baru dibuat dalam koleksi Cosmos DB.

Menggunakan Azure CLI

Alih-alih menggunakan portal Azure, Anda dapat menyelesaikan langkah-langkah IoT Hub menggunakan Azure CLI. Untuk detailnya, lihat halaman Azure CLI untuk membuat langganan peristiwa dan membuat perangkat IoT.

Membersihkan sumber daya

Tutorial ini menggunakan sumber daya yang dikenakan biaya pada langganan Azure Anda. Ketika Anda selesai mencoba tutorial dan menguji hasil Anda, nonaktifkan atau hapus sumber daya yang tidak ingin Anda simpan.

Aplikasi logika

Jika Anda tidak ingin kehilangan pekerjaan pada aplikasi logika, nonaktifkan alih-alih menghapusnya.

  1. Navigasi ke aplikasi logika Anda.

  2. Pada bilah Gambaran Umum, pilih Hapus atau Nonaktifkan.

    Setiap langganan hanya dapat memiliki satu hub IoT gratis. Jika Anda membuat hub gratis untuk tutorial ini, Anda tidak perlu menghapusnya untuk mencegah biaya.

Hub IoT atau Event Grid

  1. Navigasi ke IoT Hub Anda.

  2. Di bilah Gambaran Umum, pilih Hapus.

  3. Meskipun Anda menyimpan hub IoT, Anda mungkin ingin menghapus langganan peristiwa yang Anda buat. Di hub IoT Anda, pilih Event Grid.

  4. Pilih langganan peristiwa yang ingin Anda hapus, lalu pilih Hapus.

Cosmos DB

Untuk menghapus akun Azure Cosmos DB dari portal Azure, buka sumber daya Anda dan pilih Hapus akun dari bilah menu atas. Lihat petunjuk mendetail untuk menghapus akun Azure Cosmos DB.

Langkah berikutnya