Cara menggunakan pemicu dan pengikatan Event Grid di Azure Functions

Azure Functions menyediakan integrasi bawaan dengan Azure Event Grid menggunakan pemicu dan pengikatan. Artikel ini menunjukkan cara mengonfigurasi dan mengevaluasi pemicu dan pengikat Event Grid secara lokal. Untuk informasi selengkapnya mengenai definisi dan contoh pemicu dan pengikatan output Event Grid, lihat salah satu artikel referensi berikut:

Buat langganan

Untuk mulai menerima permintaan HTTP Event Grid, buat langganan Event Grid yang menentukan URL titik akhir yang memanggil fungsi.

portal Microsoft Azure

Untuk fungsi yang Anda kembangkan di portal Azure dengan pemicu Event Grid, pilih Integrasi lalu pilih Pemicu Event Grid dan pilih Buat langganan Event Grid.

Connect a new event subscription to trigger in the portal.

Saat Anda memilih tautan ini, portal akan membuka halaman Buat Langganan Peristiwa dengan titik akhir pemicu saat ini yang sudah ditentukan.

Create event subscription with function endpoint already defined

Untuk informasi selengkapnya tentang cara membuat langganan dengan menggunakan portal Azure, lihat Membuat peristiwa kustom - Portal Azure di dokumentasi Event Grid.

Azure CLI

Untuk membuat langganan dengan menggunakan Azure CLI, gunakan perintah buat langganan peristiwa az eventgrid.

Perintah ini memerlukan URL titik akhir yang memanggil fungsi, dan titik akhir bervariasi antara versi 1.x dari runtime Functions dan versi yang lebih baru. Contoh berikut menunjukkan pola URL spesifik versi:

https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}

Kunci sistem adalah kunci otorisasi yang harus disertakan dalam URL titik akhir untuk pemicu Event Grid. Bagian berikut menjelaskan cara mendapatkan kunci sistem.

Berikut adalah contoh yang berlangganan akun penyimpanan gumpalan (dengan tempat penampung untuk kunci sistem):

az eventgrid resource event-subscription create -g myResourceGroup \
    --provider-namespace Microsoft.Storage --resource-type storageAccounts \
    --resource-name myblobstorage12345 --name myFuncSub \
    --included-event-types Microsoft.Storage.BlobCreated \
    --subject-begins-with /blobServices/default/containers/images/blobs/ \
    --endpoint https://mystoragetriggeredfunction.azurewebsites.net/runtime/webhooks/eventgrid?functionName=imageresizefunc&code=<key>

Untuk informasi selengkapnya tentang cara membuat langganan, lihat mulai cepat penyimpanan blob atau mulai cepat Event Grid lainnya.

Dapatkan kunci sistem

Anda bisa mendapatkan kunci sistem dengan menggunakan API berikut (HTTP GET):

http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}

REST API ini adalah API administrator, sehingga memerlukan kunci master aplikasi fungsi Anda. Jangan membingungkan tombol sistem (untuk memanggil fungsi pemicu Event Grid) dengan kunci master (untuk melakukan tugas administratif pada aplikasi fungsi). Saat Anda berlangganan topik event grid, pastikan untuk menggunakan kunci sistem.

Berikut adalah contoh respons yang menyediakan kunci sistem:

{
  "name": "eventgridextensionconfig_extension",
  "value": "{the system key for the function}",
  "links": [
    {
      "rel": "self",
      "href": "{the URL for the function, without the system key}"
    }
  ]
}

Anda bisa mendapatkan kunci master untuk aplikasi fungsi Anda dari tab Pengaturan aplikasi Fungsi di portal.

Penting

Kunci master menyediakan akses administrator ke aplikasi fungsi Anda. Jangan bagikan kunci ini dengan pihak ketiga atau distribusikan dalam aplikasi klien asli.

Untuk informasi selengkapnya, lihat Tombol otorisasi di artikel referensi pemicu HTTP.

Pengujian lokal dengan aplikasi web pemirsa

Untuk menguji pemicu Event Grid secara lokal, Anda harus mendapatkan permintaan HTTP Event Grid yang dikirim dari asalnya di cloud ke mesin lokal Anda. Salah satu cara untuk melakukannya adalah dengan menangkap permintaan secara online dan mengirim ulang secara manual pada mesin lokal Anda:

  1. Buat aplikasi web penampil yang merekam pesan peristiwa.
  2. Buat langganan Event Grid yang mengirim peristiwa ke aplikasi penonton.
  3. Buat permintaan dan salin isi permintaan dari aplikasi penonton.
  4. Kirim permintaan secara manual ke URL localhost dari fungsi pemicu Event Grid Anda.

Setelah selesai menguji, Anda bisa menggunakan langganan yang sama untuk produksi dengan memperbarui titik akhir. Gunakan perintah pembaruan langganan peristiwa az eventgrid Azure CLI.

Membuat aplikasi web penampil

Untuk menyederhanakan penangkapan pesan peristiwa, Anda dapat menerapkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup plan App Service, aplikasi web App Service, dan kode sumber dari GitHub.

Pilih Sebarkan ke Azure untuk menyebarkan solusi ke langganan Anda. Di portal Microsoft Azure, berikan nilai untuk parameter.

Deploy to Azure.

Diperlukan beberapa menit untuk menyelesaikan penyebaran. Setelah penyebaran berhasil, lihat aplikasi web Anda untuk memastikannya berjalan. Di browser web, navigasi ke: https://<your-site-name>.azurewebsites.net

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

View new site

Membuat langganan Event Grid

Buat langganan Event Grid dari jenis yang ingin Anda uji, dan berikan URL dari aplikasi web Anda sebagai titik akhir untuk pemberitahuan peristiwa. Titik akhir untuk aplikasi web Anda harus menyertakan akhiran /api/updates/. Jadi, URL lengkapnya adalah https://<your-site-name>.azurewebsites.net/api/updates

Untuk informasi selengkapnya tentang cara membuat langganan dengan menggunakan portal Azure, lihat Membuat peristiwa kustom - Portal Azure di dokumentasi Event Grid.

Membuat permintaan

Picu peristiwa yang akan menghasilkan lalu lintas HTTP ke titik akhir aplikasi web Anda. Misalnya, jika Anda membuat langganan penyimpanan gumpalan, unggah atau hapus gumpalan. Saat permintaan muncul di aplikasi web Anda, salin isi permintaan.

Permintaan validasi langganan akan diterima terlebih dahulu; mengabaikan permintaan validasi apa pun, dan menyalin permintaan peristiwa.

Copy request body from web app

Mengirim permintaan secara manual

Menjalankan fungsi Event Grid Anda secara lokal. Header Content-Type dan aeg-event-type harus diatur secara manual, sementara dan semua nilai lainnya dapat dibiarkan sebagai default.

Gunakan alat seperti Postman ataucurl untuk membuat permintaan HTTP POST:

  • Mengatur Content-Type: application/json header.

  • Mengatur aeg-event-type: Notification header.

  • Tempelkan data RequestBin ke dalam isi permintaan.

  • Kirim ke URL fungsi pemicu Event Grid Anda.

    http://localhost:7071/runtime/webhooks/eventgrid?functionName={FUNCTION_NAME}
    

Parameter functionName harus nama yang ditentukan dalam FunctionName atribut.

Tangkapan layar berikut menunjukkan header dan badan permintaan di Postman:

Headers in Postman

Request body in Postman

Fungsi pemicu Event Grid dijalankan dan memperlihatkan log yang mirip dengan contoh berikut:

Sample Event Grid trigger function logs

Langkah berikutnya

Untuk mempelajari selengkapnya Event Grid dengan Functions, lihat artikel berikut: