Azure Event Grid olayları için olay işleyicileri olarak Service Bus kuyrukları ve konuları
Olay işleyicisi Event Grid aracılığıyla bir olay kaynağından olayları alır ve bu olayları işler. Olayları işlemek için birkaç Azure hizmetinin örneklerini kullanabilirsiniz ve Azure Service Bus bunlardan biridir. Bu makalede, Event Grid'den olaylar için işleyici olarak Service Bus kuyruğu veya konusunun nasıl kullanılacağı gösterilmektedir.
Service Bus kuyrukları
Event Grid'deki olayları, kurumsal uygulamalarda arabelleğe alma veya komut ve denetim senaryolarında kullanmak üzere doğrudan Service Bus kuyruklarına yönlendirebilirsiniz.
Azure portalı kullanma
Azure portalında bir olay aboneliği oluştururken uç nokta türü olarak Service Bus Kuyruğu'na tıklayın ve ardından service Bus kuyruğu seçmek için bir uç nokta seçin'e tıklayın.
Not
Hedef olarak oturum etkin kuyruk/konu aboneliğini kullanıyorsanız, 'SessionId' üst bilgi adıyla Teslim Özelliği'ni kullanarak olaydaki oturum özelliğini ayarlamanız gerekir.
Azure CLI kullanma
az eventgrid event-subscription create
olarak ve olarak ayarlanmış servicebusqueue
--endpoint
olarak komutunu --endpoint-type
/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
kullanın. Bir örnek aşağıda verilmiştir:
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
Özel konular için komutunu, sistem konularına yönelik az eventgrid system-topic event-subscription
komutu ve az eventgrid partner topic event-subscription create
iş ortağı konuları için komutunu da kullanabilirsinizaz eventgrid topic event-subscription
.
Azure PowerShell kullanma
New-AzEventGridSubscription komutunu, olarak ve servicebusqueue
-Endpoint
olarak ayarlanmış olarak /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
kullanın.-EndpointType
Bir örnek aşağıda verilmiştir:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Sistem konuları için komutunu ve New-AzEventGridPartnerTopicEventSubscription
iş ortağı konuları için komutunu da kullanabilirsinizNew-AzEventGridSystemTopicEventSubscription
.
Service Bus konuları
Event Grid'deki olayları doğrudan komut ve denetim mesajlaşma senaryoları için Service Bus konularına yönlendirebilirsiniz.
Azure portalı kullanma
Azure portalında bir olay aboneliği oluştururken uç nokta türü olarak Service Bus Konusu'na tıklayın ve ardından bir Uç nokta seçin'e tıklayarak Service Bus konusu seçin.
Azure CLI kullanma
az eventgrid event-subscription create
olarak ve olarak ayarlanmış servicebustopic
--endpoint
olarak komutunu --endpoint-type
/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
kullanın. Bir örnek aşağıda verilmiştir:
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
Özel konular için komutunu, sistem konularına yönelik az eventgrid system-topic event-subscription
komutu ve az eventgrid partner topic event-subscription create
iş ortağı konuları için komutunu da kullanabilirsinizaz eventgrid topic event-subscription
.
Azure PowerShell kullanma
New-AzEventGridSubscription komutunu, olarak ve servicebustopic
-Endpoint
olarak ayarlanmış olarak /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
kullanın.-EndpointType
Bir örnek aşağıda verilmiştir:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Sistem konuları için komutunu ve New-AzEventGridPartnerTopicEventSubscription
iş ortağı konuları için komutunu da kullanabilirsinizNew-AzEventGridSystemTopicEventSubscription
.
İleti üst bilgileri
İleti üst bilgilerinde aldığınız özellikler şunlardır:
Özellik adı | Açıklama |
---|---|
aeg-subscription-name | Olay aboneliğinin adı. |
aeg-delivery-count | Olay için yapılan deneme sayısı. |
aeg-event-type | Olayın türü. Aşağıdaki değerlerden biri olabilir:
|
aeg-metadata-version | Olayın meta veri sürümü. Event Grid olay şeması için bu özellik meta veri sürümünü temsil eder ve bulut olay şeması için belirtim sürümünü temsil eder. |
aeg-data-version | Olayın veri sürümü. Event Grid olay şeması için bu özellik veri sürümünü temsil eder ve bulut olay şeması için geçerli değildir. |
aeg-output-event-id | Event Grid olayının kimliği. |
Service Bus kuyruğuna veya konusuna aracılı ileti olarak bir olay gönderdiğinizde messageid
, aracılı ileti iç sistem kimliğidir.
service bus varlığında yinelenen algılamayı açarak yinelenen teslimleri önleyebileceğiniz şekilde, iletinin iç sistem kimliği olayın yeniden tesliminde korunur. Service Bus varlığında yinelenen algılama süresini olayın yaşam süresi (TTL) veya en uzun yeniden deneme süresi (hangisi daha uzunsa) olarak etkinleştirmenizi öneririz.
Teslim özellikleri
Olay abonelikleri, teslim edilen olaylara dahil edilen HTTP üst bilgilerini ayarlamanıza olanak tanır. Bu özellik, hedefin gerektirdiği özel üst bilgileri ayarlamanıza olanak tanır. Azure Service Bus kuyruklarına ve konu başlıklarına teslim edilen olaylar üzerinde özel üst bilgiler ayarlayabilirsiniz.
Azure Service Bus, tek ileti gönderirken aşağıdaki ileti özelliklerinin kullanılmasını destekler.
Üst bilgi adı | Üst bilgi türü |
---|---|
MessageId |
Dinamik |
PartitionKey |
Statik veya dinamik |
SessionId |
Statik veya dinamik |
CorrelationId |
Statik veya dinamik |
Label |
Statik veya dinamik |
ReplyTo |
Statik veya dinamik |
ReplyToSessionId |
Statik veya dinamik |
To |
Statik veya dinamik |
ViaPartitionKey |
Statik veya dinamik |
Not
- varsayılan değeri
MessageId
Event Grid olayının iç kimliğidir. Geçersiz kılabilirsiniz. Örneğin,data.field
. - Yalnızca veya
MessageId
ayarlayabilirsinizSessionId
.
Daha fazla bilgi için bkz . Özel teslim özellikleri.
REST örnekleri (PUT için)
Service Bus kuyruğu
{
"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"
}
}
Service Bus kuyruğu - yönetilen kimlikle teslim
{
"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"
}
}
Service Bus konusu
{
"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"
}
}
Service Bus konusu - yönetilen kimlikle teslim
{
"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"
}
}
Not
Coğrafi Olağanüstü Durum Kurtarma'nın etkinleştirildiği bir Service Bus ad alanı için yük devretme gerçekleştiğinde, ikincil ad alanı Event Grid'e olay yaymaz. İkincil ad alanı için Event Grid aboneliğini el ile eklemeniz gerekir.
Sonraki adımlar
Desteklenen olay işleyicilerinin listesi için Olay işleyicileri makalesine bakın.