Service Bus-üzenetsorok és témakörök az Azure Event Grid-események eseménykezelőiként

Az eseménykezelő eseményeket fogad egy eseményforrástól az Event Griden keresztül, és feldolgozza ezeket az eseményeket. Néhány Azure-szolgáltatás példányait használhatja az események kezeléséhez, és az Azure Service Bus az egyik ilyen. Ez a cikk bemutatja, hogyan használhat Service Bus-üzenetsort vagy -témakört kezelőként az Event Grid eseményeihez.

Service Bus-üzenetsorok

Az Event Grid eseményeit közvetlenül Service Bus-üzenetsorokhoz irányíthatja, amelyek a nagyvállalati alkalmazások pufferelési vagy parancs- és vezérlési forgatókönyveiben használhatók.

Az Azure Portal használata

Az Azure Portalon esemény-előfizetés létrehozásakor válassza a Service Bus-üzenetsort végponttípusként, majd kattintson egy végpont kiválasztására a Service Bus-üzenetsor kiválasztásához.

Screenshot showing the configuration of a Service Bus queue handler.

Feljegyzés

A munkamenet-kompatibilis üzenetsorok nem támogatottak az Azure Event Grid-események eseménykezelőiként

Az Azure parancssori felület használatával

Használja a parancsot a beállítással servicebusqueue és --endpoint a beállítással --endpoint-type/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>.az eventgrid event-subscription create Példa:

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

Használhatja a az eventgrid topic event-subscription parancsot egyéni témakörökhöz, a az eventgrid system-topic event-subscription rendszertémakörök parancsához és a az eventgrid partner topic event-subscription create partnertémakörök parancsához is.

Azure PowerShell használatával

Használja a New-AzEventGridSubscription parancsot a beállítással servicebusqueue és -Endpoint a beállítással -EndpointType/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Példa:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebusqueue `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
            -EventSubscriptionName EventSubscription1

A rendszertémakörökhöz és a New-AzEventGridPartnerTopicEventSubscription partnertémakörökhöz tartozó parancsot is használhatjaNew-AzEventGridSystemTopicEventSubscription.

Service Bus-témakörök

Az Event Grid eseményeit közvetlenül a Service Bus-témakörökbe irányíthatja az üzenetkezelési forgatókönyvek irányításához és irányításához.

Az Azure Portal használata

Az Azure Portalon esemény-előfizetés létrehozásakor válassza a Service Bus-témakört végponttípusként, majd kattintson a végpont kiválasztására a Service Bus-témakör kiválasztásához.

Screenshot showing the configuration of a Service Bus topic handler.

Az Azure parancssori felület használatával

Használja a parancsot a beállítással servicebustopic és --endpoint a beállítással --endpoint-type/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>.az eventgrid event-subscription create Példa:

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

Használhatja a az eventgrid topic event-subscription parancsot egyéni témakörökhöz, a az eventgrid system-topic event-subscription rendszertémakörök parancsához és a az eventgrid partner topic event-subscription create partnertémakörök parancsához is.

Azure PowerShell használatával

Használja a New-AzEventGridSubscription parancsot a beállítással servicebustopic és -Endpoint a beállítással -EndpointType/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Példa:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebustopic `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
            -EventSubscriptionName EventSubscription1

A rendszertémakörökhöz és a New-AzEventGridPartnerTopicEventSubscription partnertémakörökhöz tartozó parancsot is használhatjaNew-AzEventGridSystemTopicEventSubscription.

Üzenetfejlécek

Ezek a tulajdonságok jelennek meg az üzenetfejlécekben:

Tulajdonság neve Leírás
aeg-subscription-name Az esemény-előfizetés neve.
aeg-delivery-count Az eseményre tett kísérletek száma.
aeg-event-type

Az esemény típusa.

A következő értékek egyike lehet:

  • SubscriptionValidation
  • Értesítés
  • SubscriptionDeletion
aeg-metadata-version

Az esemény metaadat-verziója.

Az Event Grid eseményséma esetében ez a tulajdonság a metaadatok verzióját, a felhőbeli eseményséma esetében pedig a spec verziót jelöli.

aeg-data-version

Az esemény adatverziója.

Az Event Grid eseményséma esetében ez a tulajdonság az adatverziót jelöli, és a felhőbeli eseményséma esetében ez nem érvényes.

aeg-output-event-id Az Event Grid-esemény azonosítója.

Amikor egy eseményt közvetített üzenetként küld egy Service Bus-üzenetsorba vagy -témakörbe, a messageid közvetített üzenet egy belső rendszerazonosító.

Az üzenet belső rendszerazonosítója az esemény teljes újraelrendelése során megmarad, így elkerülheti az ismétlődő kézbesítéseket a service bus entitás duplikált észlelésének bekapcsolásával. Javasoljuk, hogy engedélyezze a Service Bus-entitás duplikált észlelésének időtartamát az esemény élettartamának (TTL) vagy az újrapróbálkozási időtartam maximális időtartamának (attól függően, hogy melyik hosszabb).

Kézbesítési tulajdonságok

Az esemény-előfizetések lehetővé teszik a kézbesített eseményekben szereplő HTTP-fejlécek beállítását. Ez a funkció lehetővé teszi a célhoz szükséges egyéni fejlécek beállítását. Egyéni fejléceket állíthat be az Azure Service Bus üzenetsoraiba és témaköreibe szállított eseményeken.

Az Azure Service Bus az alábbi üzenettulajdonságok használatát támogatja egyetlen üzenet küldésekor.

Fejléc neve Fejléc típusa
MessageId Dinamikus
PartitionKey Statikus vagy dinamikus.
SessionId Statikus vagy dinamikus.
CorrelationId Statikus vagy dinamikus.
Label Statikus vagy dinamikus.
ReplyTo Statikus vagy dinamikus.
ReplyToSessionId Statikus vagy dinamikus.
To Statikus vagy dinamikus.
ViaPartitionKey Statikus vagy dinamikus.

Feljegyzés

  • Az alapértelmezett érték MessageId az Event Grid-esemény belső azonosítója. Felülbírálhatja. Például: data.field.
  • A beállításokat csak vagy a következőre állíthatja be SessionIdMessageId:

További információ: Egyéni kézbesítés tulajdonságai.

REST-példák (PUT esetén)

Service Bus-üzenetsor

{
    "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-üzenetsor – kézbesítés felügyelt identitással

{
	"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-témakör

{
    "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-témakör – kézbesítés felügyelt identitással

{
    "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"
	}
}

Feljegyzés

Ha feladatátvétel történik egy olyan Service Bus-névtér esetében, amely engedélyezve van a Geo-DR-ben, a másodlagos névtér nem bocsát ki eseményeket az Event Gridnek. Manuálisan kell hozzáadnia az Event Grid-előfizetést a másodlagos névtérhez.

Következő lépések

A támogatott eseménykezelők listáját az Eseménykezelők című cikkben találja.