Bagikan melalui


Mulai cepat: Merutekan peristiwa kustom ke fungsi Azure dengan menggunakan Event Grid

Azure Event Grid adalah layanan perutean peristiwa untuk cloud. Azure Functions adalah salah satu penanganan aktivitas yang didukung.

Dalam mulai cepat ini, Anda menggunakan portal Azure untuk membuat topik kustom, berlangganan topik kustom, dan memicu peristiwa untuk melihat hasilnya. Anda mengirim peristiwa ke fungsi Azure.

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

Membuat fungsi dengan pemicu Event Grid dengan menggunakan Visual Studio Code

Di bagian ini, Anda menggunakan Visual Studio Code untuk membuat fungsi dengan pemicu Event Grid.

Prasyarat

Membuat fungsi

  1. Buka Visual Studio Code.

  2. Di bilah kiri, pilih Azure.

  3. Di panel kiri, di bagian RUANG KERJA, pilih tombol Azure Functions pada bilah perintah, lalu pilih Buat Fungsi.

    Cuplikan layar yang memperlihatkan tab Azure Visual Studio Code dengan perintah menu untuk membuat fungsi.

  4. Pilih folder tempat Anda ingin menyimpan kode fungsi.

  5. Untuk perintah Buat proyek baru, untuk Bahasa, pilih C#, lalu pilih tombol Enter.

    Cuplikan layar yang memperlihatkan pemilihan C Sharp sebagai bahasa untuk mengembangkan fungsi Azure.

  6. Untuk runtime .NET, pilih .NET 8.0 Isolated LTS, lalu pilih tombol Enter.

  7. Untuk Templat untuk fungsi, pilih pemicu Azure Event Grid, lalu pilih tombol Enter.

  8. Untuk Nama fungsi, masukkan nama untuk fungsi Anda, lalu pilih tombol Enter.

  9. Untuk Namespace, masukkan nama untuk namespace fungsi, lalu pilih tombol Enter.

  10. Buka proyek di jendela saat ini atau jendela baru, atau tambahkan ke ruang kerja.

  11. Tunggu hingga fungsi dibuat. Status pembuatan fungsi muncul di sudut kanan bawah.

    Cuplikan layar yang memperlihatkan status pembuatan fungsi.

  12. Lihat kode dalam file YourFunctionName.cs , khususnya Run metode . Ini mencetak informasi dengan menggunakan pencatat.

    [Function(nameof(MyEventGridTriggerFunc))]
    public void Run([EventGridTrigger] CloudEvent cloudEvent)
    {
        _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
    }
    

Terapkan fungsi ke Azure

  1. Pilih tombol Azure di bilah kiri jika panel Azure belum terbuka.

  2. Arahkan mouse ke atas proyek Anda dan pilih tombol Sebarkan ke Azure .

    Cuplikan layar yang memperlihatkan tombol untuk menyebarkan ke Azure.

  3. Di daftar dropdown palet perintah, pilih + Buat aplikasi fungsi baru, lalu pilih tombol Enter.

  4. Untuk Nama, masukkan nama unik global untuk aplikasi fungsi baru, lalu pilih tombol Enter.

  5. Untuk Tumpukan Runtime, pilih .NET 8 Terisolasi.

  6. Untuk Lokasi untuk sumber daya Azure Anda, pilih wilayah yang dekat dengan Anda.

  7. Status pembuatan aplikasi fungsi muncul di tab AZURE di panel bawah. Setelah aplikasi fungsi dibuat, Anda akan melihat status penyebaran fungsi yang Anda buat secara lokal ke aplikasi fungsi.

  8. Setelah penyebaran berhasil, perluas pesan Buat Aplikasi Fungsi berhasil dan pilih Klik untuk melihat sumber daya. Konfirmasikan bahwa fungsi Anda dipilih di bagian SUMBER DAYA di panel kiri.

  9. Klik kanan fungsi Anda, lalu pilih Buka di Portal.

    Cuplikan layar yang memperlihatkan pilihan untuk membuka fungsi di portal.

  10. Masuk ke Azure jika perlu, dan konfirmasikan bahwa halaman Aplikasi Fungsi muncul untuk fungsi Anda.

  11. Di panel bawah, pilih fungsi Anda.

    Cuplikan layar yang memperlihatkan pemilihan fungsi Azure di halaman Aplikasi Fungsi.

  12. Beralih ke tab Log . Tetap buka tab ini sehingga Anda dapat melihat pesan yang dicatat saat mengirim peristiwa ke topik Event Grid nanti dalam tutorial ini.

    Cuplikan layar yang memperlihatkan tab Log untuk fungsi di portal 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. Pada bilah pencarian di topik, cari Topik Event Grid, lalu pilih Topik Event Grid.

    Cuplikan layar yang memperlihatkan pemilihan topik Event Grid.

  3. Pada halaman Topik , pilih + Buat pada bilah perintah.

    Cuplikan layar yang memperlihatkan tombol untuk membuat topik Event Grid.

  4. Pada panel Buat Topik , ikuti langkah-langkah berikut ini:

    1. Untuk Langganan, pilih langganan Azure Anda.

    2. Untuk Grup sumber daya, pilih grup sumber daya yang sama dari langkah-langkah sebelumnya.

    3. Untuk Nama, berikan nama unik untuk topik kustom. Nama topik harus unik karena entri Sistem Nama Domain (DNS) mewakilinya.

      Jangan gunakan nama yang ditampilkan dalam gambar contoh. Sebagai gantinya, buat nama Anda sendiri. Ini harus 3-50 karakter dan hanya berisi nilai a-z, A-Z, 0-9, dan tanda hubung (-).

    4. Untuk Wilayah, pilih lokasi untuk topik Event Grid.

    5. Pilih Tinjau + buat.

      Cuplikan layar yang memperlihatkan panel untuk membuat topik.

    6. Pada tab Tinjau + buat , tinjau pengaturan lalu pilih Buat.

  5. Setelah topik kustom dibuat, pilih tautan Buka sumber daya untuk membuka halaman Topik Event Grid untuk topik tersebut.

    Cuplikan layar yang memperlihatkan halaman untuk topik kustom Event Grid.

Berlangganan topik kustom

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

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

    Cuplikan layar yang memperlihatkan tombol untuk menambahkan langganan peristiwa pada toolbar.

  2. Pada panel Buat Langganan Peristiwa, ikuti langkah-langkah berikut ini:

    1. Untuk Nama, masukkan nama untuk langganan peristiwa.

    2. Untuk Skema Peristiwa, pilih Skema Peristiwa Cloud v1.0.

    3. Untuk Jenis Titik Akhir, Pilih Azure Function.

    4. Pilih Konfigurasikan titik akhir.

      Cuplikan layar yang memperlihatkan nilai langganan peristiwa.

    5. Pada panel Pilih Fungsi Azure, ikuti langkah-langkah berikut:

      1. Untuk Langganan, pilih langganan Azure yang memiliki fungsi .

      2. Untuk Grup sumber daya, pilih grup sumber daya yang memiliki fungsi .

      3. Untuk Aplikasi fungsi, pilih aplikasi fungsi Anda.

      4. Untuk Fungsi, pilih fungsi di aplikasi fungsi.

      5. Pilih Konfirmasi Pilihan.

        Cuplikan layar yang memperlihatkan panel untuk memilih fungsi Azure yang dibuat sebelumnya.

    6. Langkah ini bersifat opsional, tetapi kami merekomendasikannya untuk skenario produksi. Pada panel Buat Langganan Peristiwa, buka tab Fitur Tambahan dan atur nilai untuk Peristiwa maks per batch dan Ukuran batch pilihan dalam kilobyte.

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

      Cuplikan layar yang memperlihatkan pengaturan batching untuk langganan peristiwa.

    7. Pada panel Buat Langganan Peristiwa, pilih Buat.

Mengirim peristiwa ke topik Anda

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

Contoh pertama menggunakan Azure CLI. Ini mendapatkan URL dan kunci untuk topik kustom dan data peristiwa sampel. Gunakan nama topik kustom Anda untuk topicname. 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.

Alat cURL mengirim permintaan HTTP. Dalam artikel ini, Anda menggunakan cURL untuk mengirim peristiwa ke topik kustom.

Azure CLI

  1. Di portal Microsoft Azure, pilih Cloud Shell. Jika Anda berada dalam mode Azure PowerShell, pilih Beralih ke Bash.

    Cuplikan layar yang memperlihatkan jendela Bash di Azure Cloud Shell.

  2. Atur topicname variabel dan resourcegroupname yang 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. Gunakan perintah berikut untuk mendapatkan titik akhir untuk topik tersebut. Setelah Anda menyalin dan menempelkan perintah, perbarui nama topik dan nama grup sumber daya sebelum Anda menjalankannya.

    endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)
    
  4. Gunakan perintah berikut untuk mendapatkan kunci untuk topik kustom. Setelah Anda menyalin dan menempelkan perintah, perbarui nama topik dan nama grup sumber daya sebelum Anda menjalankannya.

    key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)
    
  5. Salin pernyataan berikut dengan definisi peristiwa, lalu pilih tombol 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
    
  7. Konfirmasikan bahwa pesan dari fungsi muncul di tab Log untuk fungsi Anda di portal Azure.

    Cuplikan layar yang memperlihatkan tab Log untuk fungsi Azure.

Azure PowerShell

Contoh kedua menggunakan Azure PowerShell untuk melakukan langkah serupa.

  1. Di portal Azure, pilih Cloud Shell (atau buka halaman Azure Cloud Shell). Di sudut kiri atas jendela Cloud Shell, pilih Beralih ke PowerShell.

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

    $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 ini di jendela Cloud Shell:

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

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    
  6. Konfirmasikan bahwa pesan dari fungsi muncul di tab Log untuk fungsi Anda di portal Azure.

    Cuplikan layar yang memperlihatkan tab Log untuk fungsi.

Verifikasi bahwa fungsi menerima peristiwa

Anda memicu peristiwa, dan Event Grid mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan. Sekarang Anda dapat memeriksa apakah fungsi menerimanya.

  1. Pada halaman Monitor untuk fungsi Anda, temukan pemanggilan.

    Cuplikan layar yang memperlihatkan tab Pemanggilan halaman Monitor.

  2. Pilih pemanggilan untuk menampilkan detailnya.

    Cuplikan layar yang memperlihatkan detail pemanggilan.

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

    Cuplikan layar yang memperlihatkan tampilan Monitor fungsi dengan log.

Membersihkan sumber daya

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

  1. Di menu sebelah kiri, pilih Grup sumber daya.

    Cuplikan layar yang memperlihatkan halaman untuk grup sumber daya

    Alternatifnya adalah memilih Semua Layanan di menu sebelah kiri, lalu pilih Grup sumber daya.

  2. Pilih grup sumber daya untuk membuka panel untuk detailnya.

  3. Pada toolbar, pilih Hapus grup sumber daya.

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

Jendela Cloud Shell dibuat dan menggunakan grup sumber daya lain yang muncul di halaman Grup sumber daya. Hapus grup sumber daya ini jika Anda tidak berencana untuk menggunakan jendela Cloud Shell nanti.

Setelah mengetahui cara membuat topik dan langganan kejadian, pelajari lebih lanjut tentang Azure Event Grid apa yang dapat membantu Anda melakukan:

Untuk mempelajari tentang menerbitkan peristiwa ke, dan menggunakan peristiwa dari, Event Grid dengan menggunakan berbagai bahasa pemrograman, lihat sampel berikut: