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 telemetri yang disimulasikan dari perangkatAzure 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.

Ini akan membawa Anda ke repositori GitHub untuk sampel, yang dapat Anda unduh sebagai .zip dengan memilih tombol Kode diikuti dengan Unduh ZIP.

Screenshot of the digital-twins-samples repo on GitHub, highlighting the steps to download it as a zip.

Ini akan 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 telah menyelesaikan setiap langkah dengan sukses.

Setelah Anda menyiapkan instans, catat nama host instans. Anda dapat menemukan nama host di portal Microsoft Azure.

Persiapkan lingkungan Anda untuk Azure CLI

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 ini akan direpresentasikan secara digital dalam instans Azure Digital Twins, yang kemudian akan dihubungkan ke IoT Hub, Event Grid, dan dua fungsi Azure untuk memungkinkan pergerakan data.

Di bawah ini adalah diagram yang mewakili skenario lengkap.

Pertama-tama Anda akan membuat instans Azure Digital Twins (bagian A dalam diagram), lalu menyiapkan aliran data telemetri perangkat ke kembar digital (panah B), lalu menyiapkan penyebaran data melalui grafik kembar (panah C).

Diagram of the full building scenario, which shows the data flowing from a device into and out of Azure Digital Twins through various Azure services.

Untuk bekerja melalui skenario, Anda akan berinteraksi dengan komponen aplikasi sampel pra-tertulis 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 telemetri perangkat dari peristiwa IoT Hub dan Azure Digital Twins

Membuat instans grafik kembar yang sudah dibuat sebelumnya

Pertama, Anda akan menggunakan solusi AdtSampleApp dari proyek sampel untuk membangun bagian Azure Digital Twins dari skenario end-to-end (bagian A):

Diagram of an excerpt from the full building scenario diagram highlighting the Azure Digital Twins instance section.

Buka jendela konsol lokal dan navigasikan ke folder digital-twins-samples-main\AdtSampleApp\SampleClientApp. Jalankan proyek SampleClientApp dengan perintah dotnet ini:

dotnet run

Proyek akan 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 si 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.

Diagram showing that floor1 contains room21, and room21 contains thermostat67.

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, karena Anda akan 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 akan menerbitkan aplikasi fungsi yang telah ditulis sebelumnya, dan memastikan aplikasi fungsi dapat mengakses Azure Digital Twins dengan menetapkan 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 harus 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.

  1. 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
    
  2. 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 --runtime-version 7 --resource-group <resource-group>
    
  3. Selanjutnya, Anda akan membuat zip dari fungsi dan memublikasikannya ke aplikasi fungsi Azure baru Anda.

    1. Buka jendela konsol di komputer Anda, dan navigasikan ke folder digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp di dalam proyek sampel yang diunduh.

    2. 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 .

    3. 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).

      Screenshot of File Explorer in Windows showing the contents of the publish zip folder.

    Sekarang Anda dapat menutup jendela konsol lokal yang Anda gunakan untuk menyiapkan proyek. Langkah terakhir akan dilakukan di Azure CLI.

  4. 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:

    Screenshot of the Azure Cloud Shell highlighting how to upload files.

    Dalam hal ini, file akan diunggah ke direktori root penyimpanan Cloud Shell Anda, sehingga Anda dapat merujuk ke file secara langsung melalui namanya untuk parameter --src dari perintah (seperti dalam, --src publish.zip).

    Penyebaran yang berhasil akan 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 akan mencetak informasi tentang fungsi ProcessDTRoutedData dan ProcessHubToDTEvents yang telah diterbitkan.

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 akan 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.

  1. Gunakan perintah berikut untuk membuat identitas yang ditetapkan sistem untuk fungsi tersebut. Output akan menampilkan detail identitas yang telah dibuat. Catat bidang principalId dalam output untuk digunakan di langkah berikutnya.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>
    
  2. 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 output informasi tentang penetapan peran yang telah 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 akan menggunakan nilai variabel ini untuk merujuk ke instans Anda. Untuk informasi selengkapnya tentang variabel lingkungan, lihat Mengelola aplikasi fungsi Anda.

Jalankan perintah di bawah ini, mengisi 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.

Proses simulasi telemetri dari perangkat Azure IoT Hub

Grafik Azure Digital Twins dimaksudkan untuk didorong oleh telemetri dari perangkat nyata.

Dalam langkah ini, Anda akan menyambungkan perangkat termostat simulasi yang terdaftar di Azure IoT Hub ke digital twins yang mewakilinya di Azure Digital Twins. Saat perangkat yang disimulasikan memancarkan telemetri, data akan diarahkan melalui fungsi ProcessHubToDTEvents Azure yang memicu pembaruan yang sesuai dalam kembaran 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 telemetri yang disimulasikan terjadi di bagian skenario ujung ke ujung ini (panah B):

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows elements before Azure Digital Twins.

Berikut adalah tindakan yang akan Anda selesaikan untuk menyiapkan koneksi perangkat ini:

  1. Membuat hub IoT yang akan mengelola perangkat yang disimulasikan
  2. Menyambungkan hub IoT ke fungsi Azure yang sesuai dengan menyiapkan langganan peristiwa
  3. Daftarkan perangkat simulasi di hub IoT
  4. Jalankan perangkat yang disimulasikan dan hasilkan telemetri
  5. 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. Pada langkah ini, Anda akan menyiapkan hub IoT yang akan 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 yang Anda berikan pada hub IoT Anda. Anda akan menggunakannya nanti.

Menyambungkan hub IoT ke fungsi Azure

Selanjutnya, sambungkan hub IoT Anda ke fungsi ProcessHubToDTEvents Azure di aplikasi fungsi yang Anda terbitkan sebelumnya, sehingga data dapat mengalir dari perangkat di Azure IoT Hub melalui fungsi, yang memperbarui Azure Digital Twins.

Untuk melakukannya, Anda akan 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 akan menampilkan informasi tentang langganan peristiwa yang telah dibuat. 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 melakukan ini di portal Azure 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 akan terhubung ke representasi ini, yang menjelaskan bagaimana kejadian telemetri akan berpindah 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

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 akan 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 ke nilai yang Anda kumpulkan di atas:

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 telah 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 akan mulai berjalan dan mulai menampilkan pesan telemetri suhu yang disimulasikan. Pesan-pesan ini dikirim ke IoT Hub, di mana pesan kemudian diambil dan diproses oleh fungsi Azure.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

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 merambat ke kembaran. Beberapa pembacaan suhu pertama dapat menunjukkan sebagai 0 sebelum data mulai tiba.

Screenshot of the console output showing log of temperature messages from digital twin thermostat67.

Setelah memverifikasi bahwa pengelogan suhu langsung berhasil berfungsi, Anda dapat berhenti menjalankan kedua proyek. Biarkan jendela konsol terbuka, karena Anda akan menggunakannya lagi nanti dalam tutorial.

Menyebarkan peristiwa Azure Digital Twins melalui grafik

Sejauh ini dalam tutorial ini, Anda telah melihat bagaimana Azure Digital Twins dapat diperbarui dari data perangkat eksternal. Selanjutnya, Anda akan melihat bagaimana perubahan pada satu kembar digital dapat merambat melalui grafik Azure Digital Twins—dengan kata lain, cara memperbarui kembar dari data internal layanan.

Untuk melakukannya, Anda akan menggunakan fungsi Azure ProcessDTRoutedData untuk memperbarui Room twin saat Termostat twin yang terhubung diperbarui. Fungsionalitas pembaruan terjadi di bagian skenario ujung ke ujung ini (panah C):

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows the elements after Azure Digital Twins.

Berikut adalah tindakan yang akan Anda selesaikan untuk menyiapkan aliran data ini:

  1. Membuat topik Event Grid untuk mengaktifkan pergerakan data antara layanan Azure
  2. Membuat titik akhir di Azure Digital Twins yang menghubungkan instans ke topik Event Grid
  3. Siapkan rute dalam Azure Digital Twins yang mengirimkan kejadian perubahan properti kembar ke titik akhir
  4. 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.”

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.

Menyambungkan fungsi Azure

Selanjutnya, berlangganan fungsi ProcessDTRoutedData Azure ke topik Event Grid yang Anda buat sebelumnya, sehingga data telemetri dapat mengalir dari termostat67 melalui topik Event Grid ke fungsi, yang kembali ke Azure Digital Twins dan memperbarui kembar room21 yang sesuai.

Untuk melakukannya, Anda akan 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 akan menjalankan simulator perangkat lagi untuk memulai alur kejadian lengkap yang telah Anda siapkan, dan meminta 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 akan mulai berjalan dan menampilkan pesan telemetri 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.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

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 termostat kembar digital67 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.

Screenshot of the console output showing a log of temperature messages, from a thermostat and a room.

Setelah Anda memverifikasi bahwa pencatatan suhu langsung dari instans Anda berhasil, Anda dapat berhenti menjalankan kedua proyek tersebut. Anda juga dapat menutup kedua jendela konsol, karena tutorial sekarang selesai.

Tinjauan

Berikut adalah ulasan skenario yang Anda buat dalam tutorial ini.

  1. Instans Azure Digital Twins secara digital mewakili lantai, kamar, dan termostat (diwakili oleh bagian A dalam diagram di bawah)
  2. Telemetri perangkat yang disimulasikan dikirim ke Azure IoT Hub, tempat fungsi ProcessHubToDTEvents Azure mendengarkan acara telemetri. Fungsi ProcessHubToDTEvents Azure menggunakan informasi dalam peristiwa ini untuk mengatur Temperature properti pada termostat67 (panah B dalam diagram).
  3. 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).

Diagram from the beginning of the article showing the full building scenario.

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 akan menghapus sumber daya Azure lainnya yang dibuat dalam tutorial ini (IoT Hub, aplikasi Azure Functions, dan sebagainya). Anda dapat menghapusnya satu per satu menggunakan perintah dt yang sesuai untuk setiap jenis sumber daya.

Anda mungkin juga ingin menghapus folder proyek dari komputer lokal Anda.

Langkah berikutnya

Dalam tutorial ini, Anda membuat skenario end-to-end yang menunjukkan Azure Digital Twins didorong oleh data perangkat langsung.

Selanjutnya, mulailah melihat dokumentasi konsep untuk mempelajari lebih lanjut tentang elemen yang bekerja dengan Anda dalam tutorial: