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.

Screenshot showing the configuration of a Service Bus queue handler.

Not

Oturum etkin kuyruklar Azure Event Grid olayları için olay işleyicileri olarak desteklenmez

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.

Screenshot showing the configuration of a Service Bus topic handler.

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:

  • SubscriptionValidation
  • Bildirim
  • SubscriptionDeletion
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 MessageIdayarlayabilirsinizSessionId.

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

Geo-DR etkin 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.