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.
In diesem Artikel werden die wichtigsten Konzepte und Funktionen beschrieben, die mit Namespacethemen verknüpft sind.
Ereignisse
Ein Ereignis ist die kleinste Informationsmenge, die einen Vorgang oder Vorfall im System vollständig beschreibt. Ein Ereignis wird häufig als diskretes Ereignis bezeichnet, da es eine eindeutige, eigenständige Tatsache über ein System darstellt, das handlungsfähige Einblicke bietet. Jedes Ereignis enthält allgemeine Informationen wie source (Quelle) des Ereignisses, time (Zeitpunkt), an dem das Ereignis aufgetreten ist, und einen eindeutigen Bezeichner. Jedes Ereignis verfügt auch über einen type. Dies ist in der Regel ein eindeutiger Bezeichner, der den Typ der Ankündigung beschreibt, für die das Ereignis verwendet wird.
Beispielsweise enthält ein Ereignis zu einer neuen Datei, die in Azure Storage erstellt wird, Details über die Datei, z.B. den Wert von lastTimeModified. Ein Event Hubs-Ereignis enthält die URL der erfassten Datei. Ein Ereignis zu einer neuen Bestellung in Ihrem Bestellungs-Microservice könnte ein orderId-Attribut und ein URL-Attribut für die Zustandsdarstellung der Bestellung besitzen. Einige weitere Beispiele für Ereignistypen sind: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Hier sehen Sie ein Beispiel für ein Ereignis:
{
"specversion" : "1.0",
"type" : "com.yourcompany.order.created",
"source" : "/orders/account/123",
"subject" : "O-28964",
"id" : "A234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"orderId" : "O-28964",
"URL" : "https://com.yourcompany/orders/O-28964"
}
}
Eine andere Art von Ereignis
Die Benutzergemeinschaft bezeichnet auch Nachrichten, die einen Datenpunkt enthalten, wie etwa einen einzelnen Gerätewert oder einen Klick auf eine Seite einer Webanwendung, als „Ereignisse“. In der Regel analysieren Sie solche Ereignisse innerhalb eines Zeitfensters, um Erkenntnisse zu gewinnen und eine Aktion auszulösen. In der Ereignisrasterdokumentation wird diese Art von Ereignis als Datenpunkt, Streamingdaten oder einfach Telemetrie bezeichnet. Die Message Queuing Telemetry Transport (MQTT)-Brokerfunktion von Event Grid verwendet neben anderen Nachrichtentypen auch diesen Ereignistyp.
Unterstützung für CloudEvents
Event Grid-Namespace-Themen akzeptieren Ereignisse, die der offenen Spezifikation der Cloud Native Computing Foundation (CNCF) CloudEvents 1.0 entsprechen, unter Verwendung der HTTP-Protokollbindung im JSON-Format. Eine CloudEvents-Instanz ist eine Art von Nachricht, die den zu übermittelnden Inhalt (als Ereignisdaten bezeichnet) und die dazugehörigen Metadaten enthält. Die Ereignisdaten in ereignisgesteuerten Architekturen enthalten in der Regel die Informationen, die eine Änderung des Systemzustands ankündigen. Die CloudEvents-Metadaten bestehen aus einer Reihe von Attributen, die kontextbezogene Informationen über die Nachricht bereitstellen, z. B. wo sie (das Quellsystem) und deren Typ stammen.
Weitere Informationen finden Sie unter Support für das CloudEvents-Schema.
Herausgeber
Ein Herausgeber ist die Anwendung, die Ereignisse an Event Grid sendet. Es kann dieselbe Anwendung sein, aus der die Ereignisse stammen: die Ereignisquelle. Sie können Ereignisse aus Ihrer eigenen Anwendung veröffentlichen, wenn Sie Namespacethemen verwenden.
Ereignisquellen
Eine Ereignisquelle ist dort, wo das Ereignis auftritt. Jede Ereignisquelle unterstützt einen oder mehrere Ereignistypen. Ihre Anwendung ist beispielsweise die Ereignisquelle für benutzerdefinierte Ereignisse, die Ihr System definiert. Bei Verwendung von Namespacethemen werden Ihre eigenen Anwendungen als Ereignisquellen unterstützt.
Namespaces
Ein Event Grid-Namespace ist ein Verwaltungscontainer für die folgenden Ressourcen:
| Ressource | Unterstütztes Protokoll |
|---|---|
| Namespacethemen | HTTP |
| Themenbereiche | MQTT |
| Kunden | MQTT |
| Clientgruppen | MQTT |
| Zertifizierungsstellenzertifikate | MQTT |
| Berechtigungsverknüpfungen | MQTT |
Durch die Verwendung eines Azure Event Grid-Namensraums können Sie verwandte Ressourcen gruppieren und als eine einzige Einheit in Ihrem Azure-Abonnement verwalten. Sie erhalten einen eindeutigen vollqualifizierten Domänennamen (FQDN).
Ein Namespace macht zwei Endpunkte verfügbar:
- Ein HTTP-Endpunkt zur Unterstützung allgemeiner Messaging-Anforderungen durch Verwendung von Namespace-Themen.
- Einen MQTT-Endpunkt für IoT-Messaging oder -Lösungen, die MQTT verwenden.
Ein Namespace stellt auch DNS-integrierte Netzwerkendpunkte bereit. Außerdem stellt er eine Reihe von Funktionen für die Zugriffskontrolle und die Verwaltung der Netzwerkintegration bereit, wie z. B. die Filterung öffentlicher IP-Eingänge und privater Verbindungen. Er ist auch der Container für verwaltete Identitäten, die für die enthaltenen Ressourcen im Namespace verwendet werden.
Hier finden Sie weitere Informationen zu Namespaces:
- Ein Namensraum ist eine nachverfolgte Ressource mit den Eigenschaften
tagsundlocation. Nachdem du es erstellt hast, kannst du es aufresources.azure.comfinden. - Der Name des Namespaces kann 3 bis 50 Zeichen lang sein. Es kann alphanumerische Zeichen, Bindestriche (-) und keine Leerzeichen enthalten.
- Der Name muss pro Region eindeutig sein.
Durchsatzeinheiten
Durchsatzeinheiten (TUs) definieren die Kapazität der Eingangs- und Ausgangsereignisrate in Namespaces. Weitere Informationen finden Sie unter Kontingente und Grenzwerte in Azure Event Grid.
Automatische Skalierung
Autoscale passt automatisch die Anzahl der Durchsatzeinheiten an, die einem Event Grid-Namespace basierend auf Echtzeitdatenverkehr und Ressourcenauslastung zugewiesen sind. Es überwacht kontinuierlich wichtige Leistungsindikatoren und skaliert die Kapazität innerhalb der von Ihnen konfigurierten Mindest- und Maximalgrenzen. Dieses Verhalten hilft, die Leistung bei Arbeitsbelastungsspitzen konstant zu halten und senkt die Kosten in Phasen mit geringer Aktivität, ohne manuelles Eingreifen erforderlich zu sein.
Um Autoscale zu verwenden, aktivieren Sie es im Namensraum und geben an:
- Mindestdurchsatz-Einheiten: Die Kapazitätsuntergrenze. Der Namensraum skaliert nicht unterhalb dieses Werts.
- Maximale Durchsatzeinheiten: Die Obergrenze für die Kapazität. Der Namensraum skaliert nicht über diesem Wert.
Event Grid bewertet die Auslastung anhand von Eventeingang, Eventausgang, eingehenden und ausgehenden MQTT-Veröffentlichungsraten sowie der Anzahl registrierter MQTT-Clients. Wenn eine Kategorie die Skalierungsschwelle überschreitet, werden mehr TUs bereitgestellt. Wenn alle Kategorien unter den Schwellenwert für die Herunterskalierung fallen, werden TUs freigegeben. Abklingzeiten zwischen den Skalierungsoperationen verhindern schnelle Oszillationen.
Autoscale ist nützlich für MQTT-Workloads, bei denen Nachrichten-Fan-out und das Wachstum von Abonnements sich schnell ändern können, wenn Geräte sich verbinden und trennen. Es ist auch für die Workloads von Event-Brokern mit stark schwankenden Verkehrsmustern sinnvoll.
Konfigurationsdetails und Kapazitätsgrenzen pro TU finden Sie in der Autoscale-Übersicht und der Anleitung.
Themen
Ein Thema enthält Ereignisse, die in Event Grid veröffentlicht wurden. In der Regel verwenden Sie eine Themenressource für eine Sammlung verwandter Ereignisse. Themen innerhalb eines Namespaces werden häufig als Namespacethemen bezeichnet.
Namespacethemen
Namespacethemen sind Themen, die in einem Event Grid-Namespace erstellt werden. Ihre Anwendung veröffentlicht Ereignisse an einem HTTP-Namespaceendpunkt, der ein Namespacethema angibt, in dem veröffentlichte Ereignisse logisch enthalten sind. Wenn Sie Ihre Anwendung entwerfen, entscheiden Sie, wie viele Themen erstellt werden sollen. Für relativ große Lösungen erstellen Sie für jede Kategorie verwandter Ereignisse ein Namespacethema. Betrachten Sie beispielsweise eine Anwendung, die Benutzerkonten verwaltet, und eine andere Anwendung für Kundenaufträge. Es ist unwahrscheinlich, dass alle Ereignisabonnenten Ereignisse von beiden Anwendungen wünschen. Um Bedenken zu trennen, erstellen Sie zwei Namespacethemen: eins für jede Anwendung. Lassen Sie Ereignisconsumer das Thema entsprechend ihren Anforderungen abonnieren. Für kleine Lösungen empfiehlt es sich ggf., alle Ereignisse an ein Thema zu senden.
Namespace-Themen unterstützen Pull-Übermittlung und Push-Übermittlung. Informationen unter Wann Pull- oder Pushübermittlung verwendet werden sollte helfen Ihnen bei der Entscheidung, ob Pullübermittlung der richtige Ansatz ist, angesichts Ihrer Anforderungen.
Ereignisabonnements
Ein Ereignisabonnement ist eine Konfigurationsressource, die einem einzelnen Thema zugeordnet ist. Unter anderem verwenden Sie ein Event-Abonnement, um die Event-Auswahlkriterien festzulegen und die für einen Abonnent verfügbare Ereignissammlung aus der Gesamtmenge an verfügbaren Events in einem Thema zu definieren. Sie können Ereignisse nach den Anforderungen der Abonnenten filtern. Sie können beispielsweise Ereignisse nach Ereignistypen filtern. Du kannst auch Filterkriterien für Ereignisdateneigenschaften definieren, wenn du ein JSON-Objekt als Wert für die Dateneigenschaft verwendest. Weitere Informationen zu Ressourceneigenschaften finden Sie in der Event Grid REST API-Dokumentation .
Ein Beispiel zum Erstellen von Abonnements für Namespacethemen finden Sie unter Veröffentlichen und Nutzen von Nachrichten mithilfe von Namespacethemen mithilfe von CLI.
Hinweis
Die Ereignisabonnements unter einem Namespace-Thema verfügen im Vergleich zu dem für benutzerdefinierte, Domain-, Partner- und Systemthemen verwendeten Modell (Event Grid Basic) ein vereinfachtes Ressourcenmodell. Weitere Informationen finden Sie im Artikel zum Erstellen, Anzeigen und Verwalten von Ereignisabonnements.
Pull-Übermittlung
Bei der Pullübermittlung stellt Ihre Anwendung eine Verbindung mit dem Event Grid her, um Nachrichten mithilfe von warteschlangenähnlicher Semantik zu lesen. Wenn Anwendungen sich mit Event Grid verbinden, um Ereignisse zu verarbeiten, steuern sie die Rate und den Zeitpunkt der Ereignisverarbeitung. Verbraucheranwendungen können bei der Verbindung mit Event Grid auch private Endpunkte verwenden, um Ereignisse über einen privaten IP-Raum zu lesen.
Die Pullübermittlung unterstützt die folgenden Vorgänge zum Lesen von Nachrichten und zum Steuern des Nachrichtenstatus: Empfangen, Bestätigen, Freigeben, Ablehnenund Sperre erneuern. Weitere Informationen finden Sie unter Übersicht zur Pull-Bereitstellung.
Datenformat beim Empfang von Ereignissen per Pull-Übermittlung
Wenn Sie Ereignisse per Pull-Übermittlung zustellen, enthält Event Grid ein Array von Objekten, das wiederum die Objekte event und brokerProperties enthält. Der Wert der Eigenschaft event ist das CloudEvent, das im strukturierten Inhaltsmodus geliefert wird. Das brokerProperties -Objekt enthält das Sperrtoken, das dem bereitgestellten CloudEvent zugeordnet ist. Das folgende JSON-Objekt ist eine Beispielantwort von einem Empfangsvorgang , der zwei Ereignisse zurückgibt:
{
"value": [
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
"deliveryCount": 2
},
"event": {
"specversion": "1.0",
"id": "A234-1234-1235",
"source": "/mycontext",
"time": "2018-04-05T17:31:00Z",
"type": "com.example.someeventtype",
"data": "some data"
}
},
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
"deliveryCount": 1
},
"event": {
"specversion": "1.0",
"id": "B688-1234-1235",
"source": "/mycontext",
"type": "com.example.someeventtype",
"time": "2018-04-05T17:31:00Z",
"data": {
"somekey" : "value",
"someOtherKey" : 9
}
}
}
]
}
Pushübermittlung
Mit der Pushübermittlung sendet Event Grid Ereignisse an ein Ziel, das in einem Push-Ereignisabonnement (Übermittlungsmodus in) konfiguriert ist. Sie stellt eine robuste Wiederholungslogik bereit, falls das Ziel keine Ereignisse empfangen kann.
Wichtig
Die Pushübermittlung von Event Grid-Namespaces unterstützt derzeit Azure Event Hubs als Ziel. In Zukunft werden Event Grid-Namespaces weitere Ziele unterstützen (einschließlich aller Ziele, die von Event Grid Basic unterstützt werden).
Event Hubs-Ereignisübermittlung
Event Grid verwendet das Event Hubs SDK zum Senden von Ereignissen an Event Hubs mithilfe von AMQP. Ereignisse werden als Bytearray mit jedem Element im Array gesendet, das ein CloudEvent enthält.
Push- und Pull-Übermittlung
Event Grid unterstützt Push- und Pull-Ereignisübermittlung über HTTP. Mit push delivery definieren Sie ein Ziel in einem Ereignisabonnement, einem Webhook oder einem Azure-Dienst, an das Event Grid Ereignisse sendet. Mit der Pull-Übermittlung stellen Abonnentenanwendungen eine Verbindung mit Event Grid her, um Ereignisse zu nutzen. Die Pullübermittlung wird für Themen in einem Event Grid-Namespace unterstützt.
Wichtig
Event Hubs wird als Ziel für Abonnements für Namespace-Themen unterstützt. In den kommenden Versionen werden Event Grid Namespaces alle derzeit in Event Grid Basic verfügbaren Ziele sowie zusätzliche Ziele unterstützen.
Wann sollte die Pushübermittlung gegenüber der Pullübermittlung verwendet werden?
Die folgenden allgemeinen Richtlinien helfen Ihnen bei der Entscheidung, wann die Pull- oder Pushübermittlung verwendet werden sollte.
Pull-Übermittlung
- Sie benötigen die volle Kontrolle darüber, wann Ereignisse empfangen werden sollen. So kann es beispielsweise sein, dass Ihre Anwendung nicht die ganze Zeit läuft, nicht stabil genug ist oder dass Sie Daten zu bestimmten Zeiten verarbeiten.
- Sie benötigen die vollständige Kontrolle über die Ereignisnutzung. Beispielsweise weist ein nachgelagerter Dienst oder eine nachgeschaltete Ebene in Ihrer Consumeranwendung ein Problem auf, das verhindert, dass Sie Ereignisse verarbeiten können. In diesem Fall ermöglicht die Pullübermittlungs-API der Consumer-App, ein bereits gelesenes Ereignis wieder zurück an den Broker freizugeben, sodass es später zugestellt werden kann.
- Sie möchten beim Empfang von Ereignissen private Links verwenden, was nur mit der Pull-Zustellung, nicht mit der Push-Zustellung möglich ist.
- Sie können einen Endpunkt nicht verfügbar machen und die Pushübermittlung verwenden, aber Sie können eine Verbindung mit Event Grid herstellen, um Ereignisse zu nutzen.
Pushübermittlung
- Sie möchten nicht ständig abfragen müssen, um festzustellen, ob eine Systemzustandsänderung eingetreten ist. Stattdessen verwenden Sie Event Grid, damit dieses Ihnen zu dem Zeitpunkt Ereignisse sendet, zu dem Zustandsänderungen auftreten.
- Sie verfügen über eine Anwendung, die keine ausgehenden Aufrufe tätigen kann. Ihr Unternehmen könnte sich zum Beispiel Sorgen über eine Datenexfiltration machen. Ihre Anwendung kann jedoch Ereignisse über einen öffentlichen Endpunkt empfangen.
Zugehöriger Inhalt
- Eine Einführung in Event Grid finden Sie unter Informationen zu Event Grid.
- Informationen zu den ersten Schritten mit Namespacethemen finden Sie unter Veröffentlichen von Ereignissen mithilfe von Namespacethemen.