Tutorial: Menyusun solusi end-to-end
Tutorial Azure Digital Twins ini menjelaskan cara membangun solusi end-to-end yang menunjukkan fungsionalitas layanan. Untuk menyiapkan solusi end-to-end lengkap yang didorong oleh data langsung dari lingkungan Anda, Anda dapat menghubungkan instans Azure Digital Twins Anda ke layanan Azure lainnya untuk manajemen perangkat dan data.
Dalam tutorial ini, Anda akan...
- Siapkan Instans Azure Digital Twins
- Pelajari tentang skenario penyusun sampel dan membuat instans komponen yang telah ditulis sebelumnya
- Menggunakan aplikasi Azure Functions untuk merutekan data perangkat yang disimulasikan dari perangkat IoT Hub ke properti kembar digital
- Menyebarkan perubahan melalui grafik kembar dengan memproses pemberitahuan kembar digital dengan Azure Functions, titik akhir, dan rute
Prasyarat
Sebelum memulai tutorial ini, mulailah dengan prasyarat ini:
- Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Tutorial ini menggunakan .NET. Anda dapat mengunduh versi terbaru .NET SDK untuk beberapa platform dari Unduh .NET.
Kemudian, lanjutkan melalui sisa bagian ini untuk menyiapkan prasyarat yang tersisa.
Mendapatkan sumber daya sampel
Tutorial tersebut digerakkan oleh proyek sampel ujung ke ujung Azure Digital Twins yang ditulis dalam C#. Dapatkan proyek sampel di komputer Anda dengan menavigasi ke tautan sampel, dan memilih tombol Telusuri kode di bawah judul.
Tindakan ini membawa Anda ke repositori GitHub untuk sampel, yang dapat Anda unduh sebagai .zip dengan memilih tombol Kode diikuti dengan Unduh ZIP.
Tindakan ini mengunduh folder .zip ke komputer Anda sebagai digital-twins-samples-main.zip. Buka zip folder dan ekstrak file.
Menyiapkan instans Azure Digital Twins
Untuk bekerja dengan Azure Digital Twins dalam artikel ini, Anda memerlukan instans Azure Digital Twins dan izin yang diperlukan untuk menggunakannya. Jika Anda sudah menyiapkan instans Azure Digital Twins, Anda dapat menggunakan instans tersebut dan melompat ke bagian berikutnya. Jika tidak, ikuti instruksi dalam Menyiapkan instans dan autentikasi. Instruksi berisi informasi untuk membantu Anda memverifikasi bahwa Anda berhasil menyelesaikan setiap langkah.
Setelah Anda menyiapkan instans, catat nama host instans. Anda dapat menemukan nama host di portal Microsoft Azure.
Persiapkan lingkungan Anda untuk Azure CLI
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Menyiapkan sesi CLI
Untuk mulai bekerja dengan Azure Digital Twins di CLI, hal pertama yang harus dilakukan adalah masuk dan mengatur konteks CLI ke langganan Anda untuk sesi ini. Jalankan perintah ini di jendela CLI Anda:
az login
az account set --subscription "<your-Azure-subscription-ID>"
Tip
Anda juga dapat menggunakan nama langganan, bukan ID dalam perintah di atas.
Jika ini pertama kalinya Anda menggunakan langganan ini dengan Azure Digital Twins, jalankan perintah ini untuk mendaftar ke namespace layanan Azure Digital Twins. (Jika Anda tidak yakin, tidak apa-apa untuk menjalankannya lagi bahkan jika Anda pernah melakukannya di masa lalu.)
az provider register --namespace 'Microsoft.DigitalTwins'
Selanjutnya Anda akan menambahkan Ekstensi Microsoft Azure IoT untuk Azure CLI, untuk mengaktifkan perintah untuk berinteraksi dengan Azure Digital Twins dan layanan IoT lainnya. Jalankan perintah ini untuk memastikan Anda memiliki versi terbaru ekstensi:
az extension add --upgrade --name azure-iot
Sekarang Anda siap untuk bekerja dengan Azure Digital Twins di Azure CLI.
Anda dapat memverifikasi ini dengan menjalankan az dt --help
sewaktu-waktu untuk melihat daftar perintah Azure Digital Twins tingkat teratas yang tersedia.
Mengonfigurasi proyek sampel
Selanjutnya, siapkan sampel aplikasi klien yang akan berinteraksi dengan instans Azure Digital Twins Anda.
Navigasikan di komputer Anda ke folder yang Anda unduh sebelumnya dari sampel end-to-end Azure Digital Twins (dan unzip jika Anda belum melakukannya).
Setelah berada di dalam folder, navigasikan ke digital-twins-samples-main\AdtSampleApp\SampleClientApp dan buka file appsettings.json . File JSON ini berisi variabel konfigurasi yang diperlukan untuk menjalankan proyek.
Di isi file, ubah instanceUrl
ke URL nama host instans Azure Digital Twins Anda (dengan menambahkan https:// di depan nama host, seperti yang ditunjukkan di bawah).
{
"instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}
Simpan dan tutup file.
Siapkan kredensial Azure lokal
Sampel ini menggunakan DefaultAzureCredential (bagian dari pustaka Azure.Identity
) untuk mengautentikasi pengguna dengan instans Azure Digital Twins saat Anda menjalankannya di komputer lokal Anda. Untuk informasi selengkapnya tentang berbagai cara aplikasi klien dapat mengautentikasi dengan Azure Digital Twins, lihat Menulis kode autentikasi aplikasi.
Dengan DefaultAzureCredential
, sampel akan mencari kredensial di lingkungan lokal Anda, seperti masuk Azure di Azure CLI lokal atau di Visual Studio atau Visual Studio Code. Untuk alasan ini, Anda harus masuk ke Azure secara lokal melalui salah satu mekanisme ini untuk menyiapkan kredensial untuk sampel tersebut.
Jika Anda menggunakan Visual Studio atau Visual Studio Code untuk menjalankan sampel kode, pastikan Anda masuk ke editor tersebut dengan kredensial Azure yang sama dengan yang ingin Anda gunakan untuk mengakses instans Azure Digital Twins Anda. Jika Anda menggunakan jendela CLI lokal, jalankan az login
perintah untuk masuk ke akun Azure Anda. Setelah ini, saat menjalankan sampel kode, Anda harus diautentikasi secara otomatis.
Mulai dengan skenario bangunan
Contoh proyek yang digunakan dalam tutorial ini mewakili skenario bangunan dunia nyata, berisi lantai, ruangan, dan perangkat termostat. Komponen-komponen ini secara digital diwakili dalam instans Azure Digital Twins, yang terhubung ke IoT Hub, Event Grid, dan dua fungsi Azure untuk mengaktifkan pergerakan data.
Diagram berikut mewakili skenario lengkap.
Anda terlebih dahulu membuat instans Azure Digital Twins (bagian A dalam diagram), lalu menyiapkan aliran data perangkat ke kembar digital (panah B), lalu menyiapkan penyebaran data melalui grafik kembar (panah C).
Untuk bekerja melalui skenario, Anda berinteraksi dengan komponen aplikasi sampel prewritten yang Anda unduh sebelumnya.
Berikut adalah komponen yang diimplementasikan oleh skenario bangunan aplikasi sampel AdtSampleApp:
- Autentikasi perangkat
- Contoh penggunaan .NET (C#) SDK (ditemukan di CommandLoop.cs)
- Antarmuka konsol untuk memanggil Azure Digital Twins API
- SampleClientApp - Contoh solusi Azure Digital Twins
- SampleFunctionsApp - Aplikasi Azure Functions yang memperbarui grafik Azure Digital Twins Anda berdasarkan data perangkat dari peristiwa IoT Hub dan Azure Digital Twins
Membuat instans grafik kembar yang sudah dibuat sebelumnya
Pertama, Anda menggunakan solusi AdtSampleApp dari proyek sampel untuk membangun bagian Azure Digital Twins dari skenario end-to-end (bagian A):
Buka jendela konsol lokal dan navigasikan ke folder digital-twins-samples-main\AdtSampleApp\SampleClientApp. Jalankan proyek SampleClientApp dengan perintah dotnet ini:
dotnet run
Proyek mulai berjalan, melakukan autentikasi, dan menunggu perintah. Di konsol ini, jalankan perintah berikutnya untuk membuat sampel solusi Azure Digital Twins.
Penting
Jika Anda sudah memiliki kembar digital dan hubungan dalam instans Azure Digital Twins Anda, menjalankan perintah ini akan menghapusnya dan menggantinya dengan kembar dan hubungan untuk skenario sampel.
SetupBuildingScenario
Output dari perintah ini adalah serangkaian pesan konfirmasi karena tiga kembar digital dibuat dan terhubung dalam instans Azure Digital Twins Anda: lantai bernama lantai1, ruangan bernama kamar21, dan sensor suhu bernama termostat67. Kembar digital ini mewakili entitas yang akan ada di lingkungan dunia nyata.
Digital twins terhubung melalui hubungan ke dalam grafik kembar berikut. Grafik kembar mewakili lingkungan secara keseluruhan, termasuk bagaimana entitas berinteraksi dan berhubungan satu sama lain.
Anda dapat memverifikasi kembar yang dibuat dengan menjalankan perintah berikut, yang meminta instans Azure Digital Twins yang terhubung untuk semua kembar digital yang dikandungnya:
Query
Anda sekarang dapat berhenti menjalankan proyek. Tetap buka jendela konsol di lokasi ini, saat Anda menggunakan aplikasi ini lagi nanti dalam tutorial.
Menyiapkan aplikasi fungsi sampel
Langkah selanjutnya adalah menyiapkan aplikasi Azure Functionsyang akan digunakan sepanjang tutorial ini untuk memproses data. Aplikasi fungsi, SampleFunctionsApp, berisi dua fungsi:
- ProcessHubToDTEvents: memproses data IoT Hub masuk dan pembaruan Azure Digital Twins sesuai
- ProcessDTRoutedData: memproses data dari kembar digital, dan memperbarui si kembar induk di Azure Digital Twins yang sesuai
Di bagian ini, Anda menerbitkan aplikasi fungsi yang telah ditulis sebelumnya, dan memastikan aplikasi fungsi dapat mengakses Azure Digital Twins dengan menetapkannya identitas Microsoft Entra.
Aplikasi fungsi adalah bagian dari proyek sampel yang Anda unduh, yang terletak di folder digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp .
Menerbitkan aplikasi
Untuk menerbitkan aplikasi fungsi ke Azure, Anda perlu membuat akun penyimpanan, lalu membuat aplikasi fungsi di Azure, dan akhirnya menerbitkan fungsi ke aplikasi fungsi Azure. Bagian ini menyelesaikan tindakan ini menggunakan Azure CLI. Dalam setiap perintah, ganti tempat penampung apa pun dalam tanda kurung sudut dengan detail untuk sumber daya Anda sendiri.
Buat akun penyimpanan Azure dengan menjalankan perintah berikut:
az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRS
Buat aplikasi fungsi Azure dengan menjalankan perintah berikut:
az functionapp create --name <name-for-new-function-app> --storage-account <name-of-storage-account-from-previous-step> --functions-version 4 --consumption-plan-location <location> --runtime dotnet-isolated --resource-group <resource-group>
Selanjutnya, Anda zip fungsi dan terbitkan ke aplikasi fungsi Azure baru Anda.
Buka jendela konsol di komputer Anda (jika Anda menggunakan Azure CLI lokal, itu bisa menjadi jendela yang sama) dan navigasikan ke folder digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp di dalam proyek sampel yang Diunduh.
Di konsol, jalankan perintah berikut untuk menerbitkan proyek secara lokal:
dotnet publish -c Release -o publish
Perintah ini menerbitkan proyek ke direktori digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish .
Dengan menggunakan metode pilihan Anda, buat zip file yang diterbitkan yang terletak di dalamdirektori digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish . Beri nama folder zip publish.zip.
Penting
Pastikan folder zip tidak menyertakan lapisan tambahan untuk folder terbitkan itu sendiri. Ini seharusnya hanya berisi konten yang berada di dalam folder terbitkan.
Berikut adalah gambar bagaimana konten zip mungkin terlihat (mungkin berubah tergantung pada versi .NET Anda).
Langkah terakhir dilakukan di Azure CLI.
Di Azure CLI, jalankan perintah berikut untuk menyebarkan fungsi yang diterbitkan dan di-zip ke aplikasi fungsi Azure Anda:
az functionapp deployment source config-zip --resource-group <resource-group> --name <name-of-your-function-app> --src "<full-path-to-publish.zip>"
Tip
Jika Anda menggunakan Azure CLI secara lokal, Anda dapat mengakses file ZIP di komputer anda secara langsung menggunakan jalurnya di komputer Anda.
Jika Anda menggunakan Azure Cloud Shell, unggah file ZIP ke Cloud Shell dengan tombol ini sebelum menjalankan perintah:
Dalam hal ini, file diunggah ke direktori akar penyimpanan Cloud Shell Anda, sehingga Anda dapat merujuk ke file secara langsung dengan namanya untuk
--src
parameter perintah (seperti dalam,--src publish.zip
).Penyebaran yang berhasil merespons dengan kode status 202 dan menghasilkan objek JSON yang berisi detail fungsi baru Anda. Anda dapat mengonfirmasi bahwa penyebaran berhasil dengan mencari bidang ini dalam hasilnya:
"provisioningState": "Succeeded",
Fungsi sekarang harus diterbitkan ke aplikasi fungsi di Azure. Anda dapat menggunakan perintah CLI berikut untuk memverifikasi bahwa kedua fungsi berhasil diterbitkan. Setiap perintah memiliki tempat penampung untuk grup sumber daya Anda dan nama aplikasi fungsi Anda. Perintah mencetak informasi tentang fungsi ProcessDTRoutedData dan ProcessHubToDTEvents yang Anda terbitkan.
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessDTRoutedData
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessHubToDTEvents
Selanjutnya, aplikasi fungsi Anda harus memiliki izin yang tepat untuk mengakses instans Azure Digital Twins Anda. Anda mengonfigurasi akses ini di bagian berikutnya.
Mengonfigurasikan izin untuk aplikasi fungsi
Ada dua pengaturan yang perlu diatur agar aplikasi fungsi mengakses instans Azure Digital Twins Anda, yang keduanya dapat dilakukan dengan menggunakan Azure CLI.
Menetapkan peran akses
Pengaturan pertama memberi aplikasi fungsi peran Pemilik Data Azure Digital Twins dalam instans Azure Digital Twins. Peran ini diperlukan untuk setiap pengguna atau fungsi yang ingin melakukan banyak aktivitas pesawat data pada instans. Anda dapat membaca selengkapnya tentang keamanan dan penetapan peran di Keamanan untuk solusi Azure Digital Twins.
Gunakan perintah berikut untuk membuat identitas yang ditetapkan sistem untuk fungsi tersebut. Output menampilkan detail identitas yang ditetapkan sistem. Catat bidang principalId dalam output untuk digunakan di langkah berikutnya.
az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>
Gunakan nilai utama dalam perintah berikut untuk menetapkan identitas aplikasi fungsi ke peranPemilik Data Azure Digital Twins untuk instans Azure Digital Twins Anda.
az dt role-assignment create --resource-group <your-resource-group> --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
Hasil dari perintah ini adalah informasi yang dihasilkan tentang penetapan peran yang Anda buat. Aplikasi fungsi sekarang memiliki izin untuk mengakses data di instans Azure Digital Twins Anda.
Mengonfigurasi pengaturan aplikasi
Pengaturan kedua membuat variabel lingkungan untuk fungsi dengan URL instans Azure Digital Twins Anda. Kode fungsi menggunakan nilai variabel ini untuk merujuk ke instans Anda. Untuk informasi selengkapnya tentang variabel lingkungan, lihat Mengelola aplikasi fungsi Anda.
Jalankan perintah berikut, isi tempat penampung dengan detail sumber daya Anda.
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>"
Output adalah daftar pengaturan untuk Azure Function, yang sekarang harus berisi entri yang disebut ADT_SERVICE_URL
.
Memproses data perangkat yang disimulasikan dari perangkat IoT Hub
Biasanya, data perangkat dari perangkat nyata mendorong grafik Azure Digital Twins.
Dalam langkah ini, Anda menyambungkan perangkat termostat simulasi yang terdaftar di IoT Hub ke kembar digital yang mewakilinya di Azure Digital Twins. Saat perangkat yang disimulasikan memancarkan data, data diarahkan melalui fungsi ProcessHubToDTEvents Azure yang memicu pembaruan yang sesuai di kembar digital. Dengan cara ini, kembaran digital tetap up to date dengan data perangkat nyata. Di Azure Digital Twins, proses mengarahkan data peristiwa dari satu tempat ke tempat lain disebut acara perutean.
Pemrosesan data perangkat yang disimulasikan terjadi di bagian skenario end-to-end ini (panah B):
Berikut adalah tindakan yang Anda lakukan untuk menyiapkan koneksi perangkat ini:
- Membuat hub IoT yang mengelola perangkat yang disimulasikan
- Menyambungkan hub IoT ke fungsi Azure yang sesuai dengan menyiapkan langganan peristiwa
- Daftarkan perangkat simulasi di hub IoT
- Jalankan perangkat yang disimulasikan dan hasilkan data perangkat
- Kueri Azure Digital Twins untuk melihat hasil langsung
Membuat instans Azure IoT Hub
Azure Digital Twins dirancang untuk bekerja bersama Azure IoT Hub, layanan Azure untuk mengelola perangkat dan data mereka. Dalam langkah ini, Anda menyiapkan hub IoT yang mengelola perangkat sampel dalam tutorial ini.
Di Azure CLI, gunakan perintah ini untuk membuat hub IoT baru:
az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1
Output dari perintah ini adalah informasi tentang hub IoT yang dibuat.
Simpan nama hub IoT Anda untuk digunakan nanti.
Menyambungkan hub IoT ke fungsi Azure
Selanjutnya, sambungkan hub IoT Anda ke fungsi ProcessHubToDTEvents Azure di aplikasi fungsi yang Anda terbitkan sebelumnya. Koneksi ini memungkinkan aliran data dari perangkat di IoT Hub melalui fungsi , yang memperbarui Azure Digital Twins.
Untuk melakukannya, Anda membuat langganan peristiwa di IoT Hub Anda, dengan fungsi Azure sebagai titik akhir. Ini "berlangganan" fungsi untuk peristiwa yang terjadi di Azure IoT Hub.
Gunakan perintah CLI berikut untuk membuat langganan peristiwa. Ada tempat penampung bagi Anda untuk memasukkan nama untuk langganan peristiwa, dan ada juga tempat penampung bagi Anda untuk memasukkan ID langganan, grup sumber daya, nama hub IoT, dan nama aplikasi fungsi Anda.
az eventgrid event-subscription create --name <name-for-hub-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Devices/IotHubs/<your-IoT-hub> --included-event-types Microsoft.Devices.DeviceTelemetry --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessHubToDTEvents
Output memperlihatkan informasi tentang langganan peristiwa yang Anda buat. Anda dapat mengonfirmasi bahwa operasi berhasil diselesaikan dengan memverifikasi provisioningState
nilai dalam hasil:
"provisioningState": "Succeeded",
Tip
Jika perintah mengembalikan kesalahan penyedia sumber daya, tambahkan Microsoft.EventGrid sebagai penyedia sumber daya ke langganan Anda. Anda dapat menggunakan portal Azure untuk menambahkan penyedia sumber daya ini ke langganan Anda dengan mengikuti instruksi di Mendaftarkan penyedia sumber daya.
Daftarkan perangkat simulasi dengan Azure IoT Hub
Bagian ini membuat representasi perangkat di Azure IoT Hub dengan termostat ID67. Perangkat yang disimulasikan terhubung ke representasi ini, yang merupakan cara data perangkat mengalir dari perangkat ke IoT Hub. Hub IoT adalah tempat fungsi Azure yang berlangganan dari langkah sebelumnya mendengarkan, siap untuk mengambil kejadian dan melanjutkan pemrosesan.
Di Azure CLI, buat perangkat di IoT Hub dengan perintah berikut:
az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>
Output adalah informasi tentang perangkat yang dibuat.
Konfigurasi dan jalankan simulasi
Penting
Artikel ini menyertakan langkah-langkah untuk menyambungkan perangkat menggunakan tanda tangan akses bersama, juga disebut autentikasi kunci konten. Metode autentikasi ini mudah untuk pengujian dan evaluasi, tetapi mengautentikasi perangkat menggunakan sertifikat X.509 adalah pendekatan yang lebih aman. Untuk mempelajari lebih lanjut, lihat Keamanan koneksi praktik > terbaik keamanan.
Selanjutnya, konfigurasikan simulator perangkat untuk mengirim data ke instans Azure IoT Hub Anda.
Mulailah dengan mendapatkan hub IoT string koneksi dengan perintah berikut. Nilai string koneksi dimulai dengan HostName=
.
az iot hub connection-string show --hub-name <your-IoT-hub-name>
Kemudian, dapatkan string koneksi perangkat dengan perintah ini:
az iot hub device-identity connection-string show --device-id thermostat67 --hub-name <your-IoT-hub-name>
Selanjutnya, colokkan nilai-nilai ini ke dalam kode simulator perangkat di proyek lokal Anda untuk menyambungkan simulator ke hub IoT dan perangkat hub IoT ini.
Navigasikan pada komputer lokal Anda ke folder sampel yang diunduh, dan ke folder digital-twins-samples-main\DeviceSimulator\DeviceSimulator . Buka file AzureIoTHub.cs untuk pengeditan. Ubah nilai string koneksi berikut ini menjadi nilai yang sebelumnya Anda kumpulkan:
private const string iotHubConnectionString = "<your-hub-connection-string>";
//...
private const string deviceConnectionString = "<your-device-connection-string>";
Simpan file.
Sekarang, untuk melihat hasil simulasi data yang Anda siapkan, buka jendela konsol lokal baru dan navigasikan ke digital-twins-samples-main\DeviceSimulator\DeviceSimulator.
Catatan
Anda sekarang harus memiliki dua jendela konsol terbuka: satu yang terbuka untuk folder DeviceSimulator\DeviceSimulator , dan satu dari sebelumnya yang masih terbuka ke folder AdtSampleApp\SampleClientApp .
Gunakan perintah dotnet berikut untuk menjalankan proyek simulator perangkat:
dotnet run
Proyek mulai berjalan dan mulai menampilkan pesan data perangkat suhu yang disimulasikan. Pesan-pesan ini dikirim ke IoT Hub, di mana pesan kemudian diambil dan diproses oleh fungsi Azure.
Anda tidak perlu melakukan hal lain di konsol ini, tetapi biarkan berjalan saat Anda menyelesaikan langkah berikutnya.
Lihat hasilnya di Azure Digital Twins
Fungsi ProcessHubToDTEvents yang Anda terbitkan sebelumnya mendengarkan data IoT Hub, dan memanggil API Azure Digital Twins untuk memperbarui Temperature
properti pada kembar termostat67.
Untuk melihat data dari sisi Azure Digital Twins, beralihlah ke jendela konsol Anda yang lain yang terbuka ke folder AdtSampleApp\SampleClientApp . Jalankan proyek SampleClientApp dengan dotnet run
.
dotnet run
Setelah proyek berjalan dan menerima perintah, jalankan perintah berikut untuk mendapatkan suhu yang dilaporkan oleh termostat kembar digital67:
ObserveProperties thermostat67 Temperature
Anda akan melihat suhu yang diperbarui langsung dari instans Azure Digital Twins Anda yang dicatat ke konsol setiap dua detik. Mereka harus mencerminkan nilai yang dihasilkan simulator data (Anda dapat menempatkan jendela konsol secara berdampingan untuk memverifikasi bahwa nilai berkoordinasi).
Catatan
Mungkin perlu beberapa detik agar data dari perangkat disebarluaskan ke kembar. Beberapa pembacaan suhu pertama mungkin ditampilkan sebagai 0 sebelum data mulai tiba.
Setelah Anda memverifikasi bahwa pengelogan suhu langsung berhasil berfungsi, Anda dapat berhenti menjalankan kedua proyek. Biarkan jendela konsol tetap terbuka, saat Anda menggunakannya lagi nanti dalam tutorial.
Menyebarkan peristiwa Azure Digital Twins melalui grafik
Sejauh ini dalam tutorial ini, Anda melihat bagaimana Azure Digital Twins dapat diperbarui dari data perangkat eksternal. Selanjutnya, Anda akan melihat bagaimana perubahan pada satu kembar digital dapat disebarluaskan melalui grafik Azure Digital Twins—dengan kata lain, cara memperbarui kembar dari data internal layanan.
Untuk melakukannya, Anda menggunakan fungsi ProcessDTRoutedData Azure untuk memperbarui kembar Kamar saat kembar Termostat yang terhubung diperbarui. Fungsionalitas pembaruan terjadi di bagian skenario ujung ke ujung ini (panah C):
Berikut adalah tindakan yang Anda lakukan untuk menyiapkan aliran data ini:
- Membuat topik Event Grid untuk mengaktifkan pergerakan data antara layanan Azure
- Membuat titik akhir di Azure Digital Twins yang menghubungkan instans ke topik Event Grid
- Siapkan rute dalam Azure Digital Twins yang mengirimkan kejadian perubahan properti kembar ke titik akhir
- Menyiapkan fungsi Azure yang mendengarkan topik Event Grid di titik akhir, menerima peristiwa perubahan properti kembar yang dikirim ke sana, dan memperbarui kembar lain dalam grafik yang sesuai
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.”
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.
Menyambungkan fungsi Azure
Selanjutnya, berlangganan fungsi ProcessDTRoutedData Azure ke topik Event Grid yang sebelumnya Anda buat. Langganan ini memungkinkan data perangkat yang disimulasikan mengalir dari kembar termostat67 melalui topik Event Grid ke fungsi, yang kembali ke Azure Digital Twins dan memperbarui kembar room21 yang sesuai.
Untuk melakukannya, Anda membuat langganan Event Grid yang mengirim data dari topik Event Grid yang Anda buat sebelumnya ke fungsi ProcessDTRoutedData Azure Anda.
Gunakan perintah CLI berikut untuk membuat langganan peristiwa. Ada tempat penampung bagi Anda untuk memasukkan nama untuk langganan peristiwa ini, dan ada juga tempat penampung bagi Anda untuk memasukkan ID langganan, grup sumber daya, nama topik Event Grid Anda, dan nama aplikasi fungsi Anda.
az eventgrid event-subscription create --name <name-for-topic-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessDTRoutedData
Jalankan simulasi dan lihat hasilnya
Sekarang, kejadian harus dapat mengalir dari perangkat simulasi ke Azure Digital Twins, dan melalui grafik Azure Digital Twins untuk memperbarui twins yang sesuai. Di bagian ini, Anda menjalankan simulator perangkat lagi untuk memulai alur acara lengkap yang Anda siapkan, dan mengkueri Azure Digital Twins untuk melihat hasil langsung
Buka jendela konsol Anda yang terbuka untuk folder DeviceSimulator\DeviceSimulator , dan jalankan proyek simulator perangkat dengan dotnet run
.
Seperti pertama kali Anda menjalankan simulator perangkat, proyek mulai berjalan dan menampilkan pesan data perangkat suhu yang disimulasikan. Peristiwa ini akan melalui aliran yang Anda siapkan sebelumnya untuk memperbarui kembar termostat67, dan kemudian melalui aliran yang Anda atur baru-baru ini untuk memperbarui kamar21 kembar untuk mencocokkan.
Anda tidak perlu melakukan hal lain di konsol ini, tetapi biarkan berjalan saat Anda menyelesaikan langkah berikutnya.
Untuk melihat data dari sisi Azure Digital Twins, buka jendela konsol Anda yang lain yang terbuka ke folder AdtSampleApp\SampleClientApp , dan jalankan proyek SampleClientApp dengan dotnet run
.
Setelah proyek berjalan dan menerima perintah, jalankan perintah berikut untuk mendapatkan suhu yang dilaporkan oleh termostat67 kembar digital dan ruang kembar digital21.
ObserveProperties thermostat67 Temperature room21 Temperature
Anda akan melihat suhu yang diperbarui langsung dari instans Azure Digital Twins Anda yang dicatat ke konsol setiap dua detik. Perhatikan bahwa suhu untuk kamar21 sedang diperbarui agar sesuai dengan pembaruan termostat67.
Setelah Anda memverifikasi bahwa pengelogan suhu langsung dari instans Anda berhasil berfungsi, Anda dapat berhenti menjalankan kedua proyek. Anda juga dapat menutup kedua jendela konsol, karena tutorial sekarang selesai.
Tinjauan
Berikut adalah ulasan skenario yang Anda buat dalam tutorial ini.
- Instans Azure Digital Twins secara digital mewakili lantai, ruangan, dan termostat (diwakili oleh bagian A dalam diagram berikut)
- Data perangkat yang disimulasikan dikirim ke IoT Hub, di mana fungsi ProcessHubToDTEvents Azure mendengarkan peristiwa data perangkat. Fungsi ProcessHubToDTEvents Azure menggunakan informasi dalam peristiwa ini untuk mengatur
Temperature
properti pada termostat67 (panah B dalam diagram berikut). - Peristiwa perubahan properti di Azure Digital Twins dirutekan ke topik Event Grid, di mana fungsi ProcessDTRoutedData Azure mendengarkan peristiwa. Fungsi ProcessDTRoutedData Azure menggunakan informasi dalam peristiwa ini untuk mengatur
Temperature
properti pada room21 (panah C dalam diagram berikut).
Membersihkan sumber daya
Setelah menyelesaikan tutorial ini, Anda dapat memilih sumber daya mana yang ingin Anda hapus, tergantung pada apa yang ingin Anda lakukan selanjutnya.
Jika Anda tidak memerlukan sumber daya apa pun yang Anda buat dalam tutorial ini, Anda dapat menghapus instans Azure Digital Twins dan semua sumber daya lainnya dari artikel ini dengan perintah az group delete CLI. Tindakan ini menghapus semua sumber daya Azure dalam grup sumber daya, serta grup sumber daya itu sendiri.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang tercakup di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja.
Buka Azure Cloud Shell atau jendela CLI lokal, dan jalankan perintah berikut untuk menghapus grup sumber daya dan semua yang ada di dalamnya.
az group delete --name <your-resource-group>
Jika Anda ingin terus menggunakan instans Azure Digital Twins yang Anda siapkan dalam artikel ini, tetapi menghapus beberapa atau semua model, kembar, dan hubungannya, Anda dapat menggunakan perintah Az dt CLI untuk menghapus elemen yang ingin Anda hapus.
Opsi ini tidak menghapus salah satu sumber daya Azure lainnya yang dibuat dalam tutorial ini (IoT Hub, aplikasi Azure Functions, dan sebagainya). Anda dapat menghapus sumber daya ini satu per satu menggunakan perintah dt yang sesuai untuk setiap jenis sumber daya.
Anda juga dapat menghapus folder proyek dari komputer lokal Anda.
Langkah berikutnya
Dalam tutorial ini, Anda membuat skenario end-to-end yang menunjukkan Azure Digital Twins yang didorong oleh data perangkat langsung.
Selanjutnya, mulailah melihat dokumentasi konsep untuk mempelajari lebih lanjut tentang elemen yang bekerja dengan Anda dalam tutorial: