Bagikan melalui


Mulai cepat: Merutekan peristiwa kustom ke penyimpanan Azure Queue melalui Event Grid menggunakan Azure CLI

Azure Event Grid adalah broker peristiwa yang sangat dapat diskalakan dan tanpa server yang dapat Anda gunakan untuk mengintegrasikan aplikasi menggunakan peristiwa. Event Grid mengirimkan peristiwa ke penanganan aktivitas yang didukung dan penyimpanan Azure Queue adalah salah satunya. Dalam artikel ini, Anda menggunakan Azure CLI untuk langkah-langkah berikut:

  1. Buat topik kustom Event Grid.
  2. Buat langganan Azure Queue untuk topik kustom.
  3. Kirim contoh peristiwa ke topik kustom.
  4. Verifikasi bahwa peristiwa tersebut dikirimkan ke penyimpanan Azure Queue.

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

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.

Catatan

Pilih Coba di samping contoh CLI untuk meluncurkan Cloud Shell di panel kanan. Pilih tombol Salin untuk menyalin perintah, tempelkan di jendela Cloud Shell, lalu tekan 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 diwakili oleh entri Sistem Nama Domain (DNS).

  1. Tentukan nama untuk topik tersebut.

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

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

Membuat penyimpanan Queue

Sebelum berlangganan topik kustom, mari kita buat titik akhir untuk pesan kejadian. Anda membuat penyimpanan Queue untuk mengumpulkan peristiwa.

  1. Tentukan nama unik untuk akun Azure Storage.

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Jalankan perintah berikut untuk membuat akun Azure Storage 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 penyimpanan Antrean untuk titik akhir. Dengan Azure CLI, Anda meneruskan ID penyimpanan Queue sebagai titik akhir. Titik akhir menggunakan format:

/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 untuk penyimpanan antrean, dan berlangganan topik Event Grid. Skrip mengatur jenis titik akhir ke storagequeue dan menggunakan ID antrean untuk titik akhir.

Penting

Ganti tempat penampung tanggal kedaluwarsa (<yyyy-mm-dd>) dengan nilai aktual. Misalnya: 2022-11-17 sebelum menjalankan perintah.

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 penyimpanan 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

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. CURL adalah utilitas yang 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 penyimpanan Queue di portal, dan perhatikan bahwa Event Grid mengirimkan ketiga peristiwa tersebut ke antrean.

Screenshot showing the list of messages in the queue that are received from Event Grid.

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan peristiwa ini, 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:

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