Bagikan melalui


Menyiapkan penanganan peristiwa twin-to-twin

Artikel ini menunjukkan cara mengirim peristiwa dari kembar ke kembar, sehingga ketika satu kembar digital dalam grafik diperbarui, kembar terkait dalam grafik yang terpengaruh oleh informasi ini juga dapat diperbarui. Penanganan peristiwa ini akan membantu Anda membuat grafik Azure Digital Twins yang terhubung sepenuhnya, di mana data yang masuk ke Azure Digital Twins dari sumber eksternal seperti IoT Hub disebarkan melalui seluruh grafik.

Untuk menyiapkan penanganan peristiwa kembar ke kembar ini, Anda akan membuat fungsi Azure yang mengawasi peristiwa siklus hidup kembar. Fungsi ini mengenali peristiwa mana yang harus memengaruhi kembar lain dalam grafik, dan menggunakan data peristiwa untuk memperbarui kembar yang terpengaruh.

Prasyarat

Untuk menyiapkan penanganan twin-to-twin, Anda akan memerlukan instans Azure Digital Twins untuk digunakan. Ikuti instruksi tentang cara membuat instans, lihat Menyiapkan instans dan autentikasi Azure Digital Twins. Instans seharusnya berisi setidaknya dua kembar yang ingin Anda kirimi data.

Secara opsional, Anda mungkin ingin menyiapkan penyerapan telemetri otomatis melalui IoT Hub untuk kembar juga. Proses ini tidak diperlukan untuk mengirim data dari kembar ke kembar, tetapi ini adalah bagian penting dari solusi lengkap di mana grafik kembar didorong oleh telemetri perangkat langsung.

Mengirim peristiwa kembar ke titik akhir

Untuk menyiapkan penanganan peristiwa twin-to-twin, mulai dengan membuat titik akhir di Azure Digital Twins dan rute ke titik akhir tersebut. Kembar yang menjalankan pembaruan akan menggunakan rute untuk mengirim informasi tentang peristiwa pembaruan ke titik akhir (tempat Event Grid dapat mengambilnya nanti dan meneruskannya ke fungsi Azure untuk diproses).

Buat topik Event Grid

Event Grid adalah layanan Azure yang membantu merutekan dan mengirimkan peristiwa dari layanan Azure ke tempat lain dalam Azure. Anda dapat membuat topik Event Grid untuk mengumpulkan peristiwa tertentu dari sumber, dan kemudian pelanggan dapat mendengarkan topik untuk menerima peristiwa saat mereka datang.

Di Azure CLI, jalankan perintah berikut untuk membuat topik Event Grid:

az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>

Output dari perintah ini adalah informasi tentang topik Event Grid yang telah Anda buat. Simpan nama yang Anda berikan ke topik Event Grid Anda, karena Anda akan menggunakannya nanti.

Membuat titik akhir

Selanjutnya, buat titik akhir Event Grid di Azure Digital Twins, yang akan menghubungkan instans Anda ke topik Event Grid Anda. Gunakan perintah di bawah ini, mengisi nama topik Event Grid Anda dari langkah sebelumnya dan bidang tempat penampung lainnya sesuai kebutuhan.

az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>

Output dari perintah ini adalah informasi tentang titik akhir yang telah Anda buat.

Cari bidang provisioningState dalam output, dan periksa apakah nilainya “Berhasil.”

Screenshot of the result of the endpoint query in the Cloud Shell of the Azure portal, showing the endpoint with a provisioningState of Succeeded.

Ini juga dapat mengatakan "Provisi", yang berarti bahwa titik akhir masih dibuat. Jika demikian, tunggu beberapa detik dan jalankan perintah berikut untuk memeriksa status titik akhir. Ulangi hingga provisioningState menampilkan “Berhasil.”

az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> 

Simpan nama titik akhir Anda, karena Anda akan menggunakannya nanti.

Membuat rute

Selanjutnya, buat rute Azure Digital Twins yang mengirim peristiwa ke titik akhir Event Grid yang Anda buat.

Gunakan perintah CLI berikut, mengisi nama titik akhir Anda dari langkah sebelumnya dan bidang tempat penampung lainnya sesuai kebutuhan. Perintah ini meneruskan semua peristiwa yang terjadi dalam grafik kembar.

Tip

Anda dapat membatasi peristiwa hanya pada peristiwa tertentu yang Anda inginkan, dengan menggunakan filter.

az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>

Output dari perintah ini adalah beberapa informasi tentang rute yang telah Anda buat.

Catatan

Titik akhir (dari langkah sebelumnya) harus selesai penyediaan sebelum Anda dapat mengatur rute peristiwa yang menggunakannya. Jika pembuatan rute gagal karena titik akhir belum siap, tunggu beberapa menit lalu coba lagi.

Membuat fungsi Azure untuk memperbarui kembar

Selanjutnya, buat fungsi Azure yang akan mendengarkan titik akhir dan menerima peristiwa kembar yang dikirim ke sana melalui rute. Logika fungsi harus menggunakan informasi dalam peristiwa untuk menentukan kembar lain apa yang perlu diperbarui lalu melakukan pembaruan.

  1. Pertama, buat proyek Azure Functions baru.

    Anda dapat melakukan ini menggunakan Visual Studio (untuk instruksi, lihat Mengembangkan Azure Functions menggunakan Visual Studio), Visual Studio Code (untuk instruksi, lihat Membuat fungsi C# di Azure menggunakan Visual Studio Code), atau Azure CLI (untuk instruksi, lihat Membuat fungsi C# di Azure dari baris perintah).

  2. Tambahkan paket berikut ke proyek Anda (Anda dapat menggunakan manajer paket Visual Studio NuGet, atau perintah tambahkan paket dotnet dalam alat baris perintah).

  3. Isi logika fungsi Anda. Anda dapat melihat sampel kode fungsi untuk beberapa skenario di repositori azure-digital-twins-getting-started untuk membantu Anda memulai.

  4. Terbitkan fungsi ke Azure, menggunakan metode pilihan Anda.

    Untuk petunjuk tentang cara menerbitkan fungsi menggunakan Visual Studio, lihat Mengembangkan Azure Functions menggunakan Visual Studio. Untuk petunjuk tentang cara menerbitkan fungsi menggunakan Visual Studio Code, lihat Membuat fungsi C# di Azure menggunakan Visual Studio Code. Untuk instruksi tentang cara menerbitkan fungsi menggunakan Azure CLI, lihat Membuat fungsi C# di Azure dari baris perintah.

Setelah proses penerbitan fungsi selesai, Anda dapat menggunakan perintah Azure CLI ini untuk memverifikasi bahwa penerbitan berhasil. Ada tempat penampung untuk grup sumber daya Anda, nama aplikasi fungsi Anda, dan nama fungsi spesifik Anda. Perintah akan mencetak informasi tentang fungsi Anda.

az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name <your-function>

Mengkonfigurasi aplikasi fungsi

Sebelum fungsi Anda dapat mengakses Azure Digital Twins, perlu beberapa informasi tentang instans dan izin untuk mengaksesnya. Di bagian ini, Anda akan menetapkan peran akses untuk fungsi dan mengonfigurasikan pengaturan aplikasi sehingga dapat menemukan dan mengakses instans.

Jalankan perintah berikut di Azure Cloud Shell atau Azure CLI lokal.

Catatan

Bagian ini harus diselesaikan oleh pengguna Azure yang memiliki izin untuk mengelola akses pengguna ke sumber daya Azure, termasuk memberikan dan mendelegasikan izin. Peran umum yang memenuhi persyaratan ini adalah Pemilik, Admin akun, atau kombinasi Kontributor dan Administrator Akses Pengguna. Untuk mengetahui informasi selengkapnya tentang persyaratan izin untuk peran Azure Digital Twins, lihat Menyiapkan instans dan autentikasi.

Menetapkan peran akses

Fungsi Azure mengharuskan token pembawa diteruskan ke fungsi Azure. Untuk memastikan bahwa token pembawa diteruskan, beri aplikasi fungsi peran Pemilik Data Azure Digital Twins untuk instans Azure Digital Twins Anda, yang akan memberi aplikasi fungsi izin untuk melakukan aktivitas data plane di instans tersebut.

  1. Gunakan perintah berikut untuk membuat identitas yang dikelola sistem untuk fungsi Anda (jika fungsi sudah memilikinya, perintah ini akan mencetak detailnya). Perhatikan bidang principalId dalam output. Anda akan menggunakan ID ini untuk merujuk ke fungsi sehingga Anda dapat memberikannya izin pada langkah berikutnya.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>	
    
  2. Gunakan nilai principalId dalam perintah berikut untuk memberi fungsi peran Pemilik Data Azure Digital Twins untuk instans Azure Digital Twins Anda.

    az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Mengonfigurasi pengaturan aplikasi

Selanjutnya, buat URL instans Azure Digital Twins Anda dapat diakses oleh fungsi Anda dengan mengatur variabel lingkungan untuk instans tersebut.

Tip

URL instans Azure Digital Twins dibuat dengan menambahkan https:// ke awal nama host instans Anda. Untuk melihat nama host, bersama dengan semua properti instans Anda, jalankan az dt show --dt-name <your-Azure-Digital-Twins-instance>.

Perintah berikut mengatur variabel lingkungan untuk URL instans yang akan digunakan fungsi Anda setiap kali fungsi tersebut perlu mengakses instans.

az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"

Koneksi fungsi ke titik akhir

Selanjutnya, berlangganan fungsi Azure Anda ke titik akhir Event Grid yang Anda buat sebelumnya. Melakukannya akan memastikan bahwa data dapat mengalir dari kembar yang diperbarui melalui topik Event Grid ke fungsi, yang dapat menggunakan informasi peristiwa untuk memperbarui kembar lain sesuai kebutuhan.

Untuk berlangganan fungsi Azure, Anda akan membuat langganan Event Grid yang mengirim data dari topik Event Grid yang Anda buat sebelumnya ke fungsi Azure Anda.

Gunakan perintah CLI berikut, yang mengisi tempat penampung untuk ID langganan, grup sumber daya, aplikasi fungsi, dan nama fungsi Anda.

az eventgrid event-subscription create --name <name-for-your-event-subscription> --source-resource-id /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app-name>/functions/<function-name> 

Sekarang, fungsi Anda dapat menerima peristiwa melalui topik Event Grid Anda. Penyiapan aliran data sudah selesai.

Menguji dan memverifikasi hasil

Langkah terakhir adalah memverifikasi bahwa aliran bekerja, dengan memperbarui kembar dan memeriksa bahwa kembar terkait diperbarui sesuai dengan logika dalam fungsi Azure Anda.

Untuk memulai proses, perbarui kembaran yang merupakan sumber aliran peristiwa. Anda dapat menggunakan REST API Azure CLI, Azure Digital Twins SDK, atau Azure Digital Twins untuk membuat perubahan.

Selanjutnya, kueri instans Azure Digital Twins Anda untuk kembaran terkait. Anda dapat membuat REST API dan SDK Azure CLI, atau Azure Digital Twins. Verifikasi bahwa kembaran menerima data dan diperbarui seperti yang diharapkan.

Langkah berikutnya

Pada artikel ini, Anda menyiapkan penanganan peristiwa twin-to-twin di Azure Digital Twins. Selanjutnya, siapkan fungsi Azure untuk memicu aliran ini secara otomatis berdasarkan telemetri masuk dari perangkat IoT Hub: Telemetri penyearapan dari IoT Hub.