Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Event Grid unterstützt ereignisgesteuerte Architekturen, indem Ereignisse von Quellen zu Handlern geleitet werden. Dieser Artikel zeigt Ihnen, wie Sie Azure Service Bus-Warteschlangen und -Themen als Ereignishandler für Event Grid-Ereignisse konfigurieren können. Sie konfigurieren die Warteschlange oder das Thema so, dass Ereignisse in Unternehmensanwendungen verarbeitet werden, indem Sie das Azure-Portal, die Azure CLI, Azure PowerShell oder die REST API verwenden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
- Ein Event Grid-Thema, System-, benutzerdefiniertes Thema oder Partner-Thema zum Abonnieren. Weitere Informationen finden Sie unter Erstellen eines Event Grid-Themas oder einer Domäne.
- Ein Service Bus-Namespace mit einer Warteschlange oder einem Thema zum Empfangen der Ereignisse. Weitere Informationen finden Sie unter Erstellen eines Service Bus-Namensraums und einer Warteschlange über das Azure-Portal.
- Berechtigung, ein Ereignis-Abonnement zum Quellthema zu erstellen und Nachrichten an die Ziel-Service Bus-Warteschlange oder das Thema zu senden.
Service Bus-Warteschlangen
Routen Sie Ereignisse in Event Grid direkt zu Service Bus-Warteschlangen für Puffer- oder Kommando- und Kontrollszenarien in Unternehmensanwendungen.
Konfigurieren Sie eine Service Bus-Warteschlange mithilfe des Azure-Portals
Im Azure-Portal wählt man beim Erstellen eines Event-Abonnements Service Bus Queue als Endpunkttyp aus und dann Select an endpoint, um eine Service Bus Queue auszuwählen.
Hinweis
Wenn Sie eine sitzungsaktivierte Warteschlange oder ein Themenabonnement als Ziel verwenden, legen Sie für das Ereignis die Sitzungseigenschaft fest, indem Sie eine Übermittlungseigenschaft mit dem Headernamen SessionId verwenden.
Konfigurieren Sie eine Service Bus Queue mit der Azure CLI
Verwenden Sie den Befehl az eventgrid event-subscription create, wobei --endpoint-type auf servicebusqueue und --endpoint auf /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME> festgelegt ist. Hier sehen Sie ein Beispiel:
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
Sie können auch den Befehl az eventgrid topic event-subscription für benutzerdefinierte Themen, den Befehl az eventgrid system-topic event-subscription für Systemthemen und den Befehl az eventgrid partner topic event-subscription create für Partnerthemen verwenden.
Konfigurieren einer Service Bus-Warteschlange mithilfe von Azure PowerShell
Verwenden Sie den Befehl New-AzEventGridSubscription, wobei -EndpointType auf servicebusqueue und -Endpoint auf /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME> festgelegt ist. Hier sehen Sie ein Beispiel:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Sie können auch den Befehl New-AzEventGridSystemTopicEventSubscription für Systemthemen und den Befehl New-AzEventGridPartnerTopicEventSubscription für Partnerthemen verwenden.
Service Bus-Themen
Routen Sie Ereignisse in Event Grid direkt zu Service Bus-Themen für Kommando- und Kontrollmessaging-Szenarien.
Konfigurieren Sie ein Service Bus-Thema mithilfe des Azure-Portals
Im Azure-Portal wählen Sie beim Erstellen eines Ereignisabonnements Service Bus-Thema als Endpunkttyp aus und dann Endpunkt auswählen, um ein Service Bus-Thema auszuwählen.
Konfigurieren Sie ein Service Bus-Thema mit der Azure CLI
Verwenden Sie den Befehl az eventgrid event-subscription create, wobei --endpoint-type auf servicebustopic und --endpoint auf /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME> festgelegt ist. Hier sehen Sie ein Beispiel:
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
Sie können auch den Befehl az eventgrid topic event-subscription für benutzerdefinierte Themen, den Befehl az eventgrid system-topic event-subscription für Systemthemen und den Befehl az eventgrid partner topic event-subscription create für Partnerthemen verwenden.
Konfigurieren eines Service Bus-Themas mithilfe von Azure PowerShell
Verwenden Sie den Befehl New-AzEventGridSubscription, wobei -EndpointType auf servicebustopic und -Endpoint auf /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME> festgelegt ist. Hier sehen Sie ein Beispiel:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Sie können auch den Befehl New-AzEventGridSystemTopicEventSubscription für Systemthemen und den Befehl New-AzEventGridPartnerTopicEventSubscription für Partnerthemen verwenden.
Nachrichtenheader
Dies sind die Eigenschaften, die Sie in den Nachrichtenheadern empfangen:
| Eigenschaftenname | BESCHREIBUNG |
|---|---|
| aeg-subscription-name | Name des Ereignisabonnements. |
| aeg-delivery-count | Anzahl von Versuchen, die für das Ereignis durchgeführt wurden |
| aeg-event-type | Der Typ des Ereignisses Es kann sich um einen der folgenden Werte handeln:
|
| aeg-metadata-version | Die Metadatenversion des Ereignisses Bei einem Event Grid-Ereignisschema stellt diese Eigenschaft die Metadatenversion und bei einem Cloudereignisschema die Spezifikationsversion dar. |
| aeg-data-version | Die Datenversion des Ereignisses Bei einem Event Grid-Ereignisschema stellt diese Eigenschaft die Datenversion dar. Bei einem Cloudereignisschema kommt sie nicht zur Anwendung |
| aeg-output-event-id | ID des Event Grid-Ereignisses |
Wenn Sie ein Ereignis an eine Service Bus-Warteschlange oder ein Service Bus-Thema als im Broker gespeicherte Nachricht senden, ist die messageid dieser im Broker gespeicherten Nachricht eine interne System-ID.
Die interne System-ID der Nachricht bleibt während der erneuten Zustellung des Ereignisses erhalten, sodass Sie doppelte Zustellungen vermeiden können, indem Sie die Duplikaterkennung auf der Service Bus-Entität aktivieren. Legen Sie für die Service Bus-Entität die Dauer der Duplikaterkennung entweder auf die Gültigkeitsdauer (Time-to-live, TTL) des Ereignisses oder auf die maximale Dauer für Wiederholungsversuche fest, je nachdem, welcher Wert länger ist.
Übermittlungseigenschaften
Wenn Sie Event-Abonnements verwenden, können Sie HTTP-Header einrichten, die in ausgelieferte Events aufgenommen werden. Diese Funktion unterstützt das Setzen benutzerdefinierter Header, die das Ziel benötigt. Du kannst benutzerdefinierte Header für Ereignisse festlegen, die an Azure Service Bus-Warteschlangen und Topics übermittelt werden.
Azure Service Bus unterstützt folgende Nachrichteneigenschaften, wenn Sie einzelne Nachrichten senden.
| Kopfzeilenname | Headertyp |
|---|---|
MessageId |
Dynamisch |
PartitionKey |
Statisch oder dynamisch |
SessionId |
Statisch oder dynamisch |
CorrelationId |
Statisch oder dynamisch |
Label |
Statisch oder dynamisch |
ReplyTo |
Statisch oder dynamisch |
ReplyToSessionId |
Statisch oder dynamisch |
To |
Statisch oder dynamisch |
ViaPartitionKey |
Statisch oder dynamisch |
Hinweis
- Der Standardwert von
MessageIdist die interne ID des Event Grid Ereignisses. Sie kann außer Kraft gesetzt werden. Verwenden Sie z. B.data.field. - Sie können nur
SessionIdoderMessageIdfestlegen.
Weitere Informationen finden Sie unter Benutzerdefinierte Übermittlungseigenschaften.
REST-Beispiele (für PUT)
Service Bus-Warteschlange
{
"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-Warteschlange: Bereitstellung mit verwalteter Identität
{
"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-Topic
{
"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-Thema: Bereitstellung mit verwalteter Identität
{
"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"
}
}
Hinweis
Wenn es bei einem Service Bus-Namespace, für den Geo-Disaster Recovery aktiviert ist, zu einem Failover kommt, sendet der sekundäre Namespace keine Ereignisse an Event Grid. Du musst das Event Grid-Abonnement manuell für den sekundären Namensraum hinzufügen.
Verwandte Inhalte
Eine Liste der unterstützten Ereignishandler finden Sie im Artikel zu Ereignishandlern .