Merutekan peristiwa kustom ke titik akhir web dengan portal Azure dan Azure Event Grid

Event Grid adalah layanan terkelola penuh yang memungkinkan Anda mengelola kejadian dengan mudah di berbagai layanan dan aplikasi Azure. Event Grid menyederhanakan pembangunan aplikasi berbasis kejadian dan nirserver. Untuk gambaran umum layanan tersebut, lihat Gambaran umum Event Grid.

Dalam artikel ini, Anda menggunakan portal Azure untuk melakukan tugas berikut:

  1. Membuat topik kustom.
  2. Berlangganan topik kustom.
  3. Pemicu peristiwa.
  4. Menampilkan hasilnya. Biasanya, Anda mengirim peristiwa ke titik akhir yang memproses data peristiwa dan mengambil tindakan. Namun, untuk menyederhanakan artikel ini, Anda mengirim peristiwa ke aplikasi web yang mengumpulkan dan menampilkan pesan.

Prasyarat

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Mendaftarkan penyedia sumber Event Grid

Kecuali jika Event Grid telah digunakan sebelumnya, Anda harus mendaftarkan penyedia sumber daya Event Grid. Jika Anda pernah menggunakan Event Grid sebelumnya, lewati ke bagian berikutnya.

Di portal Azure, lakukan langkah-langkah berikut:

  1. Di menu sebelah kiri, pilih Langganan.

  2. Pilih langganan yang ingin Anda gunakan untuk Event Grid dari daftar langganan.

  3. Pada halaman Langganan, pilih Penyedia sumber pada bagian Pengaturan di menu sebelah kiri.

  4. Cari Microsoft.EventGrid, dan konfirmasikan bahwa StatusTidak Terdaftar.

  5. Pilih Microsoft.EventGrid dalam daftar penyedia.

  6. Pilih Daftar pada bilah perintah.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Refresh untuk memastikan status Microsoft.EventGrid diubah menjadi Terdaftar.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Membuat topik kustom

Topik Event Grid menyediakan titik akhir yang ditentukan pengguna tempat Anda memposting peristiwa.

  1. Masuk ke portal Microsoft Azure.

  2. Di bilah pencarian di topik, ketik Topik Event Grid, lalu pilih Topik Event Grid dari menu drop-down.

    Screenshot showing the Azure port search bar to search for Event Grid topics.

  3. Di halaman Topik Event Grid, pilih + Buat pada toolbar.

    Screenshot showing the Create Topic button on Event Grid topics page.

  4. Di halaman Buat Topik, ikuti langkah berikut:

    1. Pilih langganan Azure Anda.

    2. Pilih grup sumber daya yang sudah ada atau pilih Buat baru, dan masukkan nama untuk grup sumber daya.

    3. Berikan nama unik untuk topik kustom. Nama topik harus unik karena diwakili oleh entri DNS. Jangan gunakan nama yang ditampilkan dalam gambar. Sebaliknya, buat nama Anda sendiri - harus antara 3-50 karakter dan hanya berisi nilai a-z, A-Z, 0-9, dan "-".

    4. Pilih lokasi untuk topik Event Grid.

    5. Pilih Tinjau + buat di bagian bawah halaman.

      Create Topic page

    6. Di tab Tinjau + buat dari halaman Membuat topik, pilih Buat.

      Review settings and create

  5. Setelah penerapan berhasil, pilih Buka sumber daya untuk menavigasi ke halaman Topik Event Grid untuk topik Anda. Tetap buka halaman ini. Anda menggunakannya nanti di mulai cepat.

    Screenshot showing the Event Grid topic home page.

    Catatan

    Agar panduan memulai cepat tetap sederhana, Anda hanya akan menggunakan laman Dasar-dasar untuk membuat topik. Untuk langkah-langkah detail tentang mengonfigurasi jaringan, keamanan, dan pengaturan tempat tinggal data di laman lain dari wizard, lihat Membuat topik khusus.

Buat titik akhir pesan

Sebelum Anda membuat langganan untuk topik kustom, buat titik akhir untuk pesan peristiwa. Biasanya, titik akhir mengambil tindakan berdasarkan data kejadian. Untuk menyederhanakan mulai cepat ini, Anda menyebarkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup rencana App Service, aplikasi web App Service, dan kode sumber dari GitHub.

  1. Di halaman artikel, pilih Sebarkan ke Azure untuk menyebarkan solusi untuk langganan Anda. Di portal Microsoft Azure, berikan nilai untuk parameter.

    Button to deploy the Resource Manager template to Azure.

  2. Pada halaman Penyebaran kustom, lakukan langkah-langkah berikut ini:

    1. Untuk grup Sumber Daya, pilih grup sumber daya yang Anda buat saat membuat akun penyimpanan. Akan lebih mudah bagi Anda untuk membersihkan setelah Anda selesai dengan tutorial dengan menghapus grup sumber daya.

    2. Untuk Nama Situs, masukkan nama untuk aplikasi web.

    3. Untuk Nama paket hosting, masukkan nama untuk paket App Service yang akan digunakan untuk menghosting aplikasi web.

    4. Pilih Tinjau + buat.

      Screenshot showing the Custom deployment page.

  3. Pada halaman Tinjau + buat, pilih Buat.

  4. Perlu beberapa menit untuk menyelesaikan penyebaran. Pilih Pemberitahuan (ikon bel) di portal, lalu pilih Masuk ke grup sumber daya.

    Screenshot showing the successful deployment message with a link to navigate to the resource group.

  5. Pada halaman Grup sumber daya, di daftar sumber daya, pilih aplikasi web yang Anda buat. Anda juga melihat paket App Service dan akun penyimpanan dalam daftar ini.

    Screenshot that shows the Resource Group page with the deployed resources.

  6. Pada halaman App Service untuk aplikasi web Anda, pilih URL untuk menavigasi ke situs web. URL harus dalam format ini: https://<your-site-name>.azurewebsites.net.

    Screenshot that shows the App Service page with the link to the site highlighted.

  7. Konfirmasikan bahwa Anda melihat situs tetapi belum ada peristiwa yang diposting ke situs tersebut.

    Screenshot that shows the Event Grid Viewer sample app.

Berlangganan topik kustom

Anda berlangganan topik Event Grid untuk memberi tahu Event Grid peristiwa mana yang ingin Anda lacak, dan tempat mengirim peristiwa.

  1. Sekarang, di halaman Topik Event Grid untuk topik kustom Anda, pilih + Langganan Peristiwa pada toolbar.

    Add event subscription button

  2. Di halaman Membuat Langganan Peristiwa, ikuti langkah berikut:

    1. Masukkan nama untuk langganan acara.

    2. Pilih Web Hook untuk Jenis titik akhir.

    3. Pilih Pilih titik akhir.

      Provide event subscription values

    4. Untuk titik akhir webhook, berikan URL aplikasi web Anda dan tambahkan api/updates ke URL halaman beranda. Pilih Konfirmasi Pilihan.

      Provide endpoint URL

    5. Kembali ke halaman Membuat Langganan Peristiwa, pilih Buat.

  3. Lihat lagi aplikasi web Anda, dan perhatikan bahwa peristiwa validasi langganan telah dikirim ke sana. Pilih ikon mata untuk meluaskan data peristiwa. Event Grid mengirimkan peristiwa validasi sehingga titik akhir dapat memverifikasi bahwa ia ingin menerima data peristiwa. Aplikasi web menyertakan kode untuk memvalidasi langganan.

    Screenshot of the Event Grid Viewer app with the Subscription Validated event.

Mengirim peristiwa ke topik Anda

Sekarang, mari kita picu kejadian untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda. Gunakan Azure CLI atau PowerShell untuk mengirim peristiwa pengujian ke topik kustom Anda. Biasanya, aplikasi atau layanan Azure akan mengirimkan data peristiwa.

Contoh pertama menggunakan Azure CLI. Ini mendapatkan URL dan kunci untuk topik kustom, dan sampel data peristiwa. Gunakan nama topik kustom Anda untuk <topic name>. Ini membuat sampel data peristiwa. Elemen data JSON adalah payload peristiwa Anda. Setiap JSON yang terbentuk dengan baik dapat masuk dalam bidang ini. Anda juga dapat menggunakan bidang subjek untuk perutean dan pemfilteran tingkat lanjut. CURL adalah utilitas yang mengirim permintaan HTTP.

Azure CLI

  1. Di portal Microsoft Azure, pilih Cloud Shell. Cloud Shell terbuka di panel bawah browser web.

    Select Cloud Shell icon

  2. Pilih Bash di pojok kiri atas jendela Cloud Shell.

    Screenshot that shows the Cloud Shell with Bash selected in the top-left corner.

  3. Jalankan perintah berikut untuk mendapatkan titik akhir untuk topik: Setelah Anda menyalin dan menempelkan perintah, perbarui nama topik dan nama grup sumber daya sebelum Anda menjalankan perintah. Anda menerbitkan contoh peristiwa ke titik akhir topik ini.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Jalankan perintah berikut untuk mendapatkan kunci untuk topik kustom: Setelah Anda menyalin dan menempelkan perintah, perbarui nama topik dan nama grup sumber daya sebelum Anda menjalankan perintah. Ini adalah kunci utama topik Event Grid. Untuk mendapatkan kunci ini dari portal Microsoft Azure, beralihlah ke tab Kunci akses di halaman Topik Event Grid. Agar dapat memposting peristiwa ke topik kustom, Anda memerlukan kunci akses.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Salin pernyataan berikut dengan definisi peristiwa, dan tekan ENTER.

    event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
    
  6. Jalankan perintah Curl berikut untuk memposting peristiwa: Di perintah, header aeg-sas-key diatur ke kunci akses yang Anda dapatkan sebelumnya.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShell

Contoh kedua menggunakan PowerShell untuk melakukan langkah serupa.

  1. Di portal Microsoft Azure, pilih Cloud Shell (atau masuk ke https://shell.azure.com/). Cloud Shell terbuka di panel bawah browser web.

    Select Cloud Shell icon

  2. Di Cloud Shell, pilih PowerShell di pojok kiri atas jendela Cloud Shell. Lihat sampel gambar jendela Cloud Shell di bagian Azure CLI.

  3. Atur variabel berikut. Setelah Anda menyalin dan menempelkan setiap perintah, perbarui nama topik dan nama grup sumber daya sebelum Anda menjalankan perintah:

    Grup sumber daya:

    $resourceGroupName = "<resource group name>"
    

    Nama topik Event Grid:

    $topicName = "<topic name>"
    
  4. Jalankan perintah berikut untuk mendapatkan titik akhir dan kunci untuk topik:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Persiapkan peristiwa. Salin dan jalankan pernyataan di jendela Cloud Shell.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Gunakan cmdlet Invoke-WebRequest untuk mengirim peristiwa.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Memverifikasi di Penampil Event Grid

Anda telah memicu kejadian, dan Event Grid mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan. Lihat aplikasi web Anda untuk melihat peristiwa yang baru saja Anda kirim.

Event Grid Viewer

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan peristiwa ini, jangan bersihkan sumber daya yang dibuat di artikel ini. Jika tidak, hapus sumber daya yang Anda buat di artikel ini.

  1. Pilih Grup Sumber Daya di menu sebelah kiri. Jika Anda tidak melihatnya di menu sebelah kiri, pilih Semua Layanan di menu sebelah kiri, lalu pilih Grup Sumber Daya.

    Screenshot that shows the Resource Groups page.

  2. Pilih grup sumber daya untuk meluncurkan halaman Grup Sumber Daya.

  3. Pilih Hapus grup sumber daya di toolbar.

  4. Konfirmasi penghapusan dengan memasukkan nama grup sumber daya, lalu pilih Hapus.

    Grup sumber daya lain yang Anda lihat dalam gambar dibuat dan digunakan oleh jendela Cloud Shell. Hapus jika Anda tidak berencana menggunakan jendela Cloud Shell nanti.

Langkah berikutnya

Setelah Anda mengetahui cara membuat topik kustom dan langganan peristiwa, pelajari lebih lanjut tentang apa yang Event Grid bisa bantu Anda lakukan:

Lihat contoh berikut untuk mempelajari tentang penerbitan peristiwa ke dan menggunakan peristiwa dari Event Grid menggunakan bahasa pemrograman yang berbeda.