Mulai Cepat: Merutekan kejadian kustom ke titik akhir web dengan Azure CLI dan Event Grid
Azure Event Grid adalah layanan pembuat peristiwa untuk cloud. Dalam artikel ini, Anda menggunakan Azure CLI untuk membuat topik kustom, berlangganan topik kustom, dan memicu peristiwa untuk 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.
Setelah selesai, Anda akan melihat bahwa data peristiwa telah dikirim ke aplikasi web.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- Artikel ini memerlukan Azure CLI versi 2.0.70 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.
Buat grup sumber daya
Topik Event Grid merupakan sumber daya Azure, dan harus ditempatkan di grup sumber daya Azure. Grup sumber daya Azure adalah koleksi logis tempat sumber daya Azure disebarkan dan dikelola.
Buat grup sumber daya dengan perintah az group create. Contoh berikut ini membuat grup sumber daya bernama gridResourceGroup di lokasi usbarat2. Jika Anda memilih Coba, Anda akan melihat jendela Azure Cloud Shell di panel kanan. Kemudian, pilih Salin untuk menyalin perintah dan menempelkannya di jendela Azure Cloud Shell, dan tekan ENTER untuk menjalankan perintah. Ubah nama grup sumber daya dan lokasi jika Anda mau.
az group create --name gridResourceGroup --location westus2
Aktifkan penyedia sumber daya Event Grid
Jika sebelumnya Anda belum menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid. Jalankan perintah berikut untuk mendaftarkan penyedia:
az provider register --namespace Microsoft.EventGrid
Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Saat
registrationState
adalahRegistered
, Anda siap untuk melanjutkan.
Membuat topik kustom
Topik Event Grid menyediakan titik akhir yang ditentukan pengguna tempat Anda memposting peristiwa. Contoh berikut membuat topik kustom di grup sumber daya Anda menggunakan Bash di Azure Cloud Shell. Ganti <your-topic-name>
dengan nama unik untuk topik Anda. Nama topik kustom harus unik karena ini adalah bagian dari entri Sistem Nama Domain (DNS). Selain itu, nama harus terdiri dari antara 3-50 karakter dan hanya berisi nilai a-z, A-Z, 0-9, dan "-"
Salin perintah berikut, tentukan nama untuk topik tersebut, dan tekan ENTER untuk menjalankan perintah.
topicname=<your-topic-name>
az eventgrid topic create
Gunakan perintah untuk membuat topik kustom.az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Buat titik akhir pesan
Sebelum berlangganan topik kustom, mari kita buat titik akhir untuk pesan kejadian. 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.
Salin perintah berikut, tentukan nama untuk aplikasi web (sampel Penampil Event Grid), dan tekan ENTER untuk menjalankan perintah. Ganti
<your-site-name>
dengan nama unik untuk aplikasi web Anda. Nama aplikasi web harus unik karena merupakan bagian dari entri DNS.sitename=<your-site-name>
Jalankan
az deployment group create
untuk menyebarkan aplikasi web menggunakan templat Azure Resource Manager.az deployment group create \ --resource-group gridResourceGroup \ --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \ --parameters siteName=$sitename hostingPlanName=viewerhost
Penyebaran mungkin perlu waktu beberapa menit untuk diselesaikan. Setelah penyebaran berhasil, lihat aplikasi web Anda untuk memastikannya berjalan. Di browser web, navigasi ke: https://<your-site-name>.azurewebsites.net
Anda akan melihat situs tersebut tanpa ada pesan yang ditampilkan.
Berlangganan topik kustom
Anda berlangganan topik Event Grid untuk memberi tahu Event Grid peristiwa mana yang ingin Anda lacak dan tempat mengirim peristiwa tersebut. Contoh berikut berlangganan topik kustom yang Anda buat, dan meneruskan URL dari aplikasi web Anda sebagai titik akhir untuk pemberitahuan kejadian.
Titik akhir untuk aplikasi web Anda harus menyertakan akhiran /api/updates/
.
Salin perintah berikut, ganti
$sitename
dengan nama aplikasi web yang Anda buat di langkah sebelumnya, dan tekan ENTER untuk menjalankan perintah.endpoint=https://$sitename.azurewebsites.net/api/updates
Jalankan perintah berikut untuk mendapatkan ID sumber daya topik yang Anda buat.
topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
Jalankan perintah berikut untuk membuat langganan ke topik kustom menggunakan titik akhir.
az eventgrid event-subscription create \ --source-resource-id $topicresourceid \ --name demoViewerSub \ --endpoint $endpoint
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.
Mengirim peristiwa ke topik kustom Anda
Mari kita picu peristiwa untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda. Pertama, mari kita dapatkan URL dan kunci untuk topik kustom.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
Untuk menyederhanakan artikel ini, Anda dapat menggunakan sampel data kejadian untuk dikirim ke topik kustom. Biasanya, aplikasi atau layanan Azure akan mengirimkan data peristiwa. Contoh berikut membuat sampel data kejadian:
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"} ]'
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. Dalam artikel ini, gunakan CURL untuk mengirim kejadian ke topik.
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
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.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]
Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan kejadian ini atau aplikasi penampil kejadian, jangan bersihkan sumber daya yang dibuat di artikel ini. Jika tidak, gunakan perintah berikut untuk menghapus sumber daya yang Anda buat di artikel ini.
az group delete --name gridResourceGroup
Langkah berikutnya
Setelah mengetahui cara membuat topik dan langganan kejadian, pelajari lebih lanjut tentang Azure Event Grid apa yang dapat membantu Anda melakukan:
- Tentang Event Grid
- Membuat rute peristiwa penyimpanan Blob ke titik akhir web kustom
- Memantau perubahan komputer virtual dengan Azure Event Grid dan Logic Apps
- Streaming data besar ke dalam gudang data
Lihat contoh berikut untuk mempelajari tentang penerbitan peristiwa ke dan menggunakan peristiwa dari Event Grid menggunakan bahasa pemrograman yang berbeda.