Antrean dan topik Service Bus sebagai event handler untuk acara Azure Event Grid
Penanganan aktivitas menerima peristiwa dari sumber peristiwa melalui Event Grid, dan memproses peristiwa tersebut. Anda dapat menggunakan instans beberapa layanan Azure untuk menangani peristiwa dan Azure Bus Layanan adalah salah satunya. Artikel ini memperlihatkan kepada Anda cara menggunakan antrean atau topik Bus Layanan sebagai handler untuk peristiwa dari Event Grid.
Antrean Microsoft Azure Service Bus
Anda dapat merutekan peristiwa di Event Grid langsung ke antrean Bus Layanan untuk digunakan dalam buffering atau skenario perintah dan kontrol dalam aplikasi perusahaan.
Menggunakan portal Microsoft Azure
Di portal Azure, saat membuat langganan peristiwa, pilih antrean Bus Layanan sebagai jenis titik akhir lalu klik pilih titik akhir untuk memilih antrean Bus Layanan.
Catatan
Jika Anda menggunakan langganan antrean/topik yang diaktifkan sesi sebagai tujuan, Anda perlu mengatur properti sesi pada peristiwa menggunakan Properti Pengiriman dengan nama header 'SessionId'.
Gunakan Azure CLI
az eventgrid event-subscription create
Gunakan perintah dengan --endpoint-type
diatur ke servicebusqueue
dan --endpoint
atur ke /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Berikut contohnya:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
Anda juga dapat menggunakan az eventgrid topic event-subscription
perintah untuk topik kustom, az eventgrid system-topic event-subscription
perintah untuk topik sistem, dan az eventgrid partner topic event-subscription create
perintah untuk topik mitra.
Menggunakan Azure PowerShell
Gunakan perintah New-AzEventGridSubscription dengan -EndpointType
diatur ke servicebusqueue
dan -Endpoint
diatur ke /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Berikut contohnya:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Anda juga dapat menggunakan New-AzEventGridSystemTopicEventSubscription
perintah untuk topik sistem, dan New-AzEventGridPartnerTopicEventSubscription
perintah untuk topik mitra.
Topik Microsoft Azure Service Bus
Anda dapat merutekan peristiwa di Event Grid langsung ke topik Bus Layanan untuk skenario pesan perintah dan kontrol.
Menggunakan portal Microsoft Azure
Di portal Azure, saat membuat langganan peristiwa, pilih Bus Layanan Topik sebagai jenis titik akhir lalu klik pilih titik akhir untuk memilih topik Bus Layanan.
Gunakan Azure CLI
az eventgrid event-subscription create
Gunakan perintah dengan --endpoint-type
diatur ke servicebustopic
dan --endpoint
atur ke /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Berikut contohnya:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
Anda juga dapat menggunakan az eventgrid topic event-subscription
perintah untuk topik kustom, az eventgrid system-topic event-subscription
perintah untuk topik sistem, dan az eventgrid partner topic event-subscription create
perintah untuk topik mitra.
Menggunakan Azure PowerShell
Gunakan perintah New-AzEventGridSubscription dengan -EndpointType
diatur ke servicebustopic
dan -Endpoint
diatur ke /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Berikut contohnya:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Anda juga dapat menggunakan New-AzEventGridSystemTopicEventSubscription
perintah untuk topik sistem, dan New-AzEventGridPartnerTopicEventSubscription
perintah untuk topik mitra.
Header pesan
Ini adalah properti yang Anda terima di header pesan:
Nama properti | Deskripsi |
---|---|
aeg-subscription-name | Nama langganan kejadian. |
aeg-delivery-count | Jumlah upaya yang dilakukan untuk kejadian. |
aeg-event-type | Jenis kejadian. Jenis dapat berupa salah satu dari nilai berikut:
|
aeg-metadata-version | Versi metadata kejadian. Untuk Skema kejadian Azure Event Grid, properti ini mewakili versi metadata dan untuk skema kejadian cloud, properti ini mewakili versi spesifikasi. |
aeg-data-version | Versi data kejadian. Untuk Skema kejadian Azure Event Grid, properti ini mewakili versi data dan untuk skema kejadian cloud, tidak berlaku. |
aeg-output-event-id | ID kejadian Azure Event Grid. |
Saat Anda mengirim peristiwa ke antrean atau topik Bus Layanan sebagai pesan broker, messageid
pesan broker adalah ID sistem internal.
ID sistem internal untuk pesan dipertahankan di seluruh redelivasi peristiwa sehingga Anda dapat menghindari pengiriman duplikat dengan mengaktifkan deteksi duplikat pada entitas bus layanan. Kami menyarankan agar Anda mengaktifkan durasi deteksi duplikat pada entitas Microsoft Azure Service Bus untuk menjadi time-to-live (TTL) dari durasi peristiwa atau coba lagi maksimal, mana yang lebih lama.
Properti pengiriman
Langganan kejadian memungkinkan Anda menyiapkan header HTTP yang disertakan dalam kejadian terkikis. Kemampuan ini memungkinkan Anda mengatur header kustom yang diperlukan tujuan. Anda dapat mengatur header kustom pada peristiwa yang dikirimkan ke antrean dan topik Azure Service Bus.
Azure Service Bus mendukung penggunaan properti pesan berikut saat mengirim pesan tunggal.
Nama header | Jenis header |
---|---|
MessageId |
Dinamis |
PartitionKey |
Statis atau dinamis |
SessionId |
Statis atau dinamis |
CorrelationId |
Statis atau dinamis |
Label |
Statis atau dinamis |
ReplyTo |
Statis atau dinamis |
ReplyToSessionId |
Statis atau dinamis |
To |
Statis atau dinamis |
ViaPartitionKey |
Statis atau dinamis |
Catatan
- Nilai default
MessageId
adalah ID internal dari acara Event Grid. Anda dapat mengambil alih. Contohnya,data.field
. - Anda hanya dapat mengatur salah satu
SessionId
atauMessageId
.
Untuk informasi selengkapnya, lihat Properti pengiriman kustom.
Contoh REST (untuk PUT)
Antrean Microsoft Azure Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Antrean Service Bus - pengiriman dengan identitas terkelola
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Topik Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Topic Service Bus - pengiriman dengan identitas terkelola
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Catatan
Saat failover terjadi untuk namespace Bus Layanan yang diaktifkan Pemulihan Bencana Geografis, namespace layanan sekunder tidak memancarkan peristiwa ke Event Grid. Anda perlu menambahkan langganan Event Grid secara manual untuk namespace layanan sekunder.
Langkah berikutnya
Lihat artikel Event handler untuk mengetahui daftar event handler yang didukung.