Bagikan melalui


Mulai cepat: Merutekan peristiwa kustom ke antrean dengan menggunakan Event Grid dan Azure CLI

Azure Event Grid adalah broker peristiwa yang sangat dapat diskalakan dan tanpa server yang dapat Anda gunakan untuk mengintegrasikan aplikasi melalui peristiwa. Event Grid mengirimkan peristiwa ke penanganan aktivitas yang didukung, dan penyimpanan Azure Queue adalah salah satunya.

Dalam mulai cepat ini, Anda menggunakan Azure CLI untuk membuat topik kustom Event Grid dan langganan Queue Storage untuk topik tersebut. Anda kemudian mengirim peristiwa sampel ke topik kustom dan memverifikasi bahwa peristiwa tersebut dikirimkan ke antrean.

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

Buat grup sumber daya

Topik Event Grid adalah sumber daya Azure, dan harus ditempatkan dalam grup sumber daya Azure. Grup sumber daya Azure adalah koleksi logis tempat sumber daya Azure disebarkan dan dikelola.

Buat grup sumber daya menggunakan perintah az group create. Contoh berikut ini menampilkan cara membuat grup sumber daya bernama gridResourceGroup di westus2 lokasi.

Pilih Buka Cloud Shell untuk membuka Azure Cloud Shell di panel kanan. Pilih tombol Salin untuk menyalin perintah, tempelkan di Cloud Shell, lalu pilih tombol Enter untuk menjalankan perintah.

az group create --name gridResourceGroup --location westus2

Aktifkan penyedia sumber daya Event Grid

  1. 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
    
  2. Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Saat registrationState adalah Registered, 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.

Ganti <TOPIC NAME> dengan nama unik untuk topik kustom Anda. Nama topik Event Grid harus unik karena entri Sistem Nama Domain (DNS) mewakilinya.

  1. Tentukan nama untuk topik:

    topicname="<TOPIC NAME>"
    
  2. Jalankan perintah berikut untuk membuat topik:

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Membuat antrean

Sebelum Anda berlangganan topik kustom, buat titik akhir untuk pesan peristiwa. Anda membuat antrean untuk mengumpulkan peristiwa.

  1. Tentukan nama unik untuk akun penyimpanan Azure:

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Jalankan perintah berikut untuk membuat akun penyimpanan dan antrean (bernama eventqueue) di penyimpanan:

    queuename="eventqueue"
    
    az storage account create -n $storagename -g gridResourceGroup -l westus2 --sku Standard_LRS
    key="$(az storage account keys list -n $storagename --query "[0].{value:value}" --output tsv)"    
    az storage queue create --name $queuename --account-name $storagename --account-key $key
    

Berlangganan topik kustom

Contoh berikut berlangganan topik kustom yang Anda buat, dan meneruskan ID sumber daya antrean untuk titik akhir. Dengan Azure CLI, Anda meneruskan ID antrean sebagai titik akhir. Titik akhir dalam format ini:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/queueservices/default/queues/<QUEUE NAME>

Skrip berikut mendapatkan ID sumber daya akun penyimpanan untuk antrean. Ini membangun ID antrean dan berlangganan topik Event Grid. Skrip mengatur jenis titik akhir ke storagequeue dan menggunakan ID antrean untuk titik akhir.

Sebelum Anda menjalankan perintah, ganti tempat penampung untuk tanggal kedaluwarsa (<yyyy-mm-dd>) dengan nilai aktual untuk tahun, bulan, dan hari.

storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name mystoragequeuesubscription \
  --endpoint-type storagequeue \
  --endpoint $queueid \
  --expiration-date "<yyyy-mm-dd>"

Akun yang membuat langganan peristiwa harus memiliki akses tulis ke antrean. Perhatikan bahwa tanggal kedaluwarsa ditetapkan untuk langganan.

Jika Anda menggunakan REST API untuk membuat langganan, Anda meneruskan ID akun penyimpanan dan nama antrean sebagai parameter terpisah:

"destination": {
  "endpointType": "storagequeue",
  "properties": {
    "queueName":"eventqueue",
    "resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
  }
  ...

Mengirim peristiwa ke topik kustom Anda

Picu peristiwa untuk melihat bagaimana Event Grid mendistribusikan pesan ke titik akhir Anda. Pertama, 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)

Demi kesederhanaan dalam artikel ini, Anda menggunakan data peristiwa sampel untuk dikirim ke topik kustom. Biasanya, aplikasi atau layanan Azure akan mengirim data peristiwa.

Alat cURL mengirim permintaan HTTP. Dalam artikel ini, Anda menggunakan cURL untuk mengirim peristiwa ke topik kustom. Contoh berikut mengirimkan tiga peristiwa ke topik Event Grid:

for i in 1 2 3
do
   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"} ]'
   curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done

Buka antrean di portal Azure, dan perhatikan bahwa Event Grid mengirim ketiga peristiwa tersebut ke antrean.

Cuplikan layar yang memperlihatkan daftar pesan yang diterima dari Event Grid dalam antrean.

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan peristiwa ini, jangan bersihkan sumber daya yang Anda buat di artikel ini. Jika tidak, gunakan perintah berikut untuk menghapus sumber daya:

az group delete --name gridResourceGroup

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: