Mulai Cepat: Merutekan peristiwa kustom ke Azure Functions dengan Event Grid

Azure Event Grid adalah layanan peristiwa untuk cloud. Azure Functions adalah salah satu penanganan aktivitas yang didukung. Dalam artikel ini, Anda menggunakan portal Microsoft Azure untuk membuat topik kustom, berlangganan topik kustom, dan memicu peristiwa untuk menampilkan hasilnya. Anda mengirim peristiwa ke Azure Functions.

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

Membuat aplikasi fungsi Azure

  1. Masuk ke portal Azure.

  2. Di menu navigasi kiri, pilih Semua layanan.

  3. Pilih Komputasidalam daftar Kategori.

  4. Arahkan kursor (tidak pilih) mouse di atas Aplikasi Fungsi, dan pilih +.

    Cuplikan layar memperlihatkan pilih tautan Buat untuk Aplikasi Fungsi.

  5. Pada halaman Dasar-dasarwizard Buat Aplikasi Fungsi, ikuti langkah-langkah berikut:

    1. Pilih langganan Azure tempat Anda ingin membuat aplikasi fungsi.

    2. Buat grup sumber daya baru atau pilih grup sumber daya yang sudah ada.

    3. Tentukan nama untuk aplikasi fungsi.

    4. Pilih .NET untuk Tumpukan Runtime.

    5. Untuk Versi, pilih 6 (LTS), dalam model proses.

    6. Pilih wilayah yang paling dekat dengan Anda.

    7. Pilih Berikutnya: Penyimpanan di bagian bawah halaman.

      Cuplikan layar memperlihatkan tab Dasar dari halaman Buat Aplikasi Fungsi.

  6. Pada halaman Penyimpanan , buat akun penyimpanan baru atau pilih akun penyimpanan yang sudah ada untuk dikaitkan dengan aplikasi fungsi, lalu pilih Tinjau + buat di bagian bawah halaman.

    Cuplikan layar memperlihatkan tab Penyimpanan dari halaman Buat Aplikasi Fungsi.

  7. Pada halaman Tinjau + buat , tinjau pengaturan, dan pilih Buat di bagian bawah halaman untuk membuat aplikasi fungsi.

  8. Setelah penyebaran berhasil, pilih Buka sumber daya untuk menavigasi ke beranda untuk aplikasi fungsi.

Membuat fungsi

Sebelum berlangganan topik kustom, buat fungsi untuk menangani peristiwa.

  1. Pada halaman Aplikasi Fungsi, di bagian Buat di portal Azure, pilih Buat tautan fungsi di panel kanan.

    Cuplikan layar memperlihatkan pilihan tautan Buat fungsi.

  2. Di halaman Membuat Fungsi, ikuti langkah-langkah berikut:

    1. Di bagian Pilih templat , di kotak filter atau pencarian, ketik pemicu Azure Event Grid.

    2. Pilih templat Pemicu Azure Event Grid di daftar templat.

    3. Pilih Berikutnya di bagian bawah laman.

      Cuplikan layar memperlihatkan pilih pemicu Event Grid.

    4. Pada halaman Detail templat, masukkan nama untuk fungsi tersebut. Di sini, contohnya adalah HandleEventsFunc.

    5. Pilih Buat.

      Cuplikan layar memperlihatkan halaman Detail templat.

  3. Pada halaman Fungsi untuk HandleEventsFunc, pilih Kode + Uji di menu navigasi kiri, ganti kode dengan kode berikut, lalu pilih Simpan pada bilah perintah.

    #r "Azure.Messaging.EventGrid"
    #r "System.Memory.Data"
    
    using Azure.Messaging.EventGrid;
    using System;
    
    public static void Run(EventGridEvent eventGridEvent, ILogger log)
    {
        log.LogInformation(eventGridEvent.Data.ToString());
    }        
    

    Gambar yang memperlihatkan menu Kode + Uji pilihan untuk fungsi Azure.

  4. Pilih Pantau di menu sebelah kiri, dan beralihlah ke tab Log . Biarkan jendela atau tab browser ini tetap terbuka sehingga Anda dapat melihat informasi peristiwa yang diterima.

    Cuplikan layar memperlihatkan tampilan Monitor fungsi Azure.

Membuat topik kustom

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

  1. Pada tab baru jendela browser web, masuk ke portal Azure.

  2. Di bilah pencarian di topik, cari Topik Event Grid, dan pilih Topik Event Grid.

    Gambar memperlihatkan pemilihan topik Event Grid.

  3. Pada halaman Topik Event Grid, pilih + Buat di bilah perintah.

    Cuplikan layar memperlihatkan tombol Buat untuk membuat topik Event Grid.

  4. Di halaman Buat Topik, ikuti langkah berikut:

    1. Pilih langganan Azure Anda.

    2. Pilih grup sumber daya yang sama dari langkah sebelumnya.

    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.

      Cuplikan layar memperlihatkan halaman Buat Topik.

    6. Pada halaman Tinjau + buat, tinjau pengaturan, dan pilih Buat.

  5. Setelah topik kustom dibuat, pilih Buka tautan sumber daya untuk melihat halaman topik Event Grid berikut untuk topik yang Anda buat.

    Gambar yang memperlihatkan halaman beranda untuk topik khusus Azure Event Grid Anda.

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.

    Gambar yang memperlihatkan pemilihan Tambahkan Langganan Acara pada toolbar.

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

    1. Masukkan nama untuk langganan acara.

    2. Pilih Azure Functions untuk Jenis titik akhir.

    3. Pilih Konfigurasikan titik akhir.

      Gambar yang memperlihatkan nilai langganan acara.

    4. Untuk titik akhir fungsi, pilih Langganan Azure dan Grup Sumber Daya tempat Aplikasi Fungsi Anda berada lalu pilih Aplikasi Fungsi dan fungsi yang Anda buat sebelumnya. Pilih Konfirmasi Pilihan.

      Gambar yang memperlihatkan halaman Pilih Fungsi Azure yang memperlihatkan pemilihan fungsi yang Anda buat sebelumnya.

    5. Langkah ini bersifat opsional, tetapi direkomendasikan untuk skenario produksi. Di halaman Membuat Langganan Peristiwa, beralihlah ke tab Fitur Tingkat Lanjut, lalu atur nilai untuk Peristiwa maksimum per batch dan Ukuran batch pilihan dalam kilobyte.

      Pembuatan batch dapat memberi Anda throughput tinggi. Untuk Peristiwa maksimum per batch, tetapkan jumlah maksimum peristiwa yang akan disertakan langganan dalam batch. Ukuran batch pilihan menetapkan batas atas ukuran batch yang dipilih dalam kilobyte, tetapi dapat dilampaui jika satu peristiwa lebih besar dari ambang batas ini.

      Gambar yang memperlihatkan pengaturan pembuatan batch untuk langganan acara.

    6. Di halaman Membuat Langganan Peristiwa, pilih Buat.

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. Pilih Bash di pojok kiri atas jendela Cloud Shell.

    Gambar yang memperlihatkan Jendela Cloud Shell - Bash

  2. Atur topicname variabel dan resourcegroupname yang akan digunakan dalam perintah.

    Ganti TOPICNAME dengan nama topik Event Grid Anda.

    topicname="TOPICNAME"
    

    Ganti RESOURCEGROUPNAME dengan nama grup sumber daya Azure yang berisi topik Event Grid.

    resourcegroupname="RESOURCEGROUPNAME"
    
  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.

    endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --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.

    key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --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:

    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/). Pilih PowerShell di pojok kiri atas jendela Cloud Shell. Lihat sampel gambar jendela Cloud Shell di bagian Azure CLI.

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

    $resourceGroupName = "RESOURCEGROUPNAME"
    
    $topicName = "TOPICNAME"
    
  3. 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
    
  4. 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)+"]"
    
  5. Gunakan cmdlet Invoke-WebRequest untuk mengirim peristiwa.

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

Memverifikasi bahwa fungsi menerima acara

Anda telah memicu kejadian, dan Event Grid mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan.

  1. Pada halaman Monitor untuk fungsi Azure Anda, Anda akan melihat pemanggilan.

    Cuplikan layar memperlihatkan tab Pemanggilan halaman Monitor.

  2. Pilih pemanggilan untuk melihat detailnya.

    Cuplikan layar memperlihatkan detail Pemanggilan.

  3. Anda juga bisa menggunakan tab Log di panel kanan untuk melihat pesan yang dicatat saat Memposting peristiwa ke titik akhir topik.

    Gambar yang memperlihatkan tampilan Monitor fungsi Azure dengan log.

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.

  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.

    Kelompok Sumber Daya

    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 mengetahui cara membuat topik dan langganan kejadian, pelajari lebih lanjut tentang Azure Event Grid apa yang dapat membantu Anda melakukan:

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