Share via


Azure-Schemaregistrierung in Azure Event Hubs

Die Schemaregistrierung in Azure Event Hubs bietet Ihnen ein Repository zum Verwenden und Verwalten von Schemas in schemagesteuerten Ereignisstreamingszenarien.

Komponenten der Schemaregistrierung

Ein Event Hubs-Namespace kann Schemagruppen neben Event Hubs (oder Kafka-Themen) hosten. Er hostet eine Schemaregistrierung und kann über mehrere Schemagruppen verfügen. Obwohl die Schemaregistrierung nicht in Azure Event Hubs gehostet wird, kann sie universell mit allen Azure-Messagingdiensten und beliebigen anderen Nachrichten- oder Ereignisbrokern verwendet werden. Jede dieser Schemagruppen ist ein separates sicherbares Repository für einen Satz von Schemas. Gruppen können mit einer bestimmten Anwendung oder einer Organisationseinheit ausgerichtet werden.

Diagram that shows the components of Schema Registry in Azure Event Hubs.

Schemagruppen

Eine Schemagruppe ist eine logische Gruppe ähnlicher Schemas, die auf Ihren Geschäftskriterien basiert. Eine Schemagruppe kann mehrere Versionen eines Schemas enthalten. Mithilfe der Einstellung für die Kompatibilitätserzwingung einer Schemagruppe kann sichergestellt werden, dass neuere Schemaversionen abwärtskompatibel sind.

Durch die Sicherheitsgrenze, die durch den Gruppierungsmechanismus festgelegt wird, wird sichergestellt, dass Geschäftsgeheimnisse nicht versehentlich durch Metadaten in Situationen offengelegt werden, in denen der Namespace von mehreren Partnern gemeinsam genutzt wird. Außerdem wird es Anwendungsbesitzern ermöglicht, Schemas unabhängig von anderen Anwendungen zu verwalten, die denselben Namespace verwenden.

Schemas

Schemas definieren den Vertrag zwischen Producern und Consumern. Ein Schema, das in einer Event Hubs-Schemaregistrierung definiert ist, erleichtert die Verwaltung des Vertrags außerhalb der Ereignisdaten und entfernt so den Nutzlastmehraufwand. Ein Schema verfügt über einen Namen, einen Typ (Beispiel: Datensatz, Array usw.), einen Kompatibilitätsmodus („None“ (Keiner), „Forward“ (Aufwärts), „Backward“ (Abwärts), „Full“ (Vollständig)) und einen Serialisierungstyp (zurzeit nur Avro). Sie können mehrere Versionen eines Schemas erstellen und abrufen und eine bestimmte Version eines Schemas verwenden.

Schemaformate

Schemaformate werden verwendet, um die Art und Weise zu bestimmen, in der ein Schema strukturiert und definiert ist, wobei jedes Format spezifische Richtlinien und Syntax zum Definieren der Struktur der Ereignisse festlegt, die für das Ereignisstreaming verwendet werden.

Avro-Schema

Avro ist ein beliebtes Datenserialisierungssystem, das ein kompaktes Binärformat verwendet und Funktionen zur Schemaentwicklung bietet.

Weitere Informationen zur Verwendung des Avro-Schemaformats mit der Event Hubs-Schemaregistrierung finden Sie unter:

JSON-Schema (Vorschau)

Das JSON-Schema ist eine standardisierte Methode zum Definieren der Struktur und Datentypen der Ereignisse. Das JSON-Schema ermöglicht die sichere und zuverlässige Verwendung des JSON-Datenformats beim Ereignisstreaming.

Weitere Informationen zur Verwendung des JSON-Schemaformats mit der Event Hubs-Schemaregistrierung finden Sie unter:

Schemaentwicklung

Schemas müssen sich mit den geschäftlichen Anforderungen von Producern und Consumern weiterentwickeln. Die Azure-Schemaregistrierung unterstützt die Schemaentwicklung, indem Kompatibilitätsmodi auf Schemagruppenebene eingeführt werden. Wenn Sie eine Schemagruppe erstellen, können Sie den Kompatibilitätsmodus der Schemas angeben, die Sie in diese Schemagruppe einfügen. Wenn Sie ein Schema aktualisieren, sollte die Änderung dem zugewiesenen Kompatibilitätsmodus entsprechen, und nur dann sollte eine neue Version des Schemas erstellt werden.

Hinweis

Die Schemaentwicklung wird nur für das Avro-Schemaformat unterstützt.

Die Azure-Schemaregistrierung für Event Hubs unterstützt die folgenden Kompatibilitätsmodi.

Abwärtskompatibilität

Der Abwärtskompatibilitätsmodus ermöglicht die Verwendung einer neuen Version des Schemas im Consumercode. Es können aber auch Nachrichten mit einer alten Version des Schemas verarbeitet werden. Wenn Sie den Abwärtskompatibilitätsmodus in einer Schemagruppe verwenden, können die folgenden Änderungen an einem Schema vorgenommen werden.

  • Löschen von Feldern
  • Hinzufügen optionaler Felder

Vorwärtskompatibilität

Die Vorwärtskompatibilität ermöglicht es, eine alte Version des Schemas im Consumercode zu verwenden. Es können jedoch auch Nachrichten mit dem neuen Schema gelesen werden. Der Vorwärtskompatibilitätsmodus ermöglicht die folgenden Änderungen an einem Schema.

  • Hinzufügen von Feldern
  • Löschen optionaler Felder

Keine Kompatibilität

Wenn der Kompatibilitätsmodus None verwendet wird, werden von der Schemaregistrierung keine Kompatibilitätsprüfungen durchgeführt, wenn Sie Schemas aktualisieren.

Client-SDKs

Sie können eine der folgenden Bibliotheken verwenden, um ein Avro-Serialisierungsmodul einzubinden, das Sie verwenden können, um Nutzdaten zu serialisieren und zu deserialisieren, die Schemabezeichner der Schemaregistrierung und Avro-codierte Daten enthalten.

Grenzwerte

Informationen zu Grenzwerten (z. B. zur Anzahl von Schemagruppen in einem Namespace) von Event Hubs finden Sie unter Kontingente und Grenzwerte in Azure Event Hubs.

Rollenbasierte Zugriffssteuerung in Azure

Führen Sie die folgenden Schritte aus, um programmgesteuert auf eine Schemaregistrierung zuzugreifen:

  1. Registrieren Ihrer Anwendung in Microsoft Entra ID
  2. Fügen Sie den Sicherheitsprinzipal der Anwendung einer der folgenden Rollen der rollenbasierten Zugriffssteuerung (Azure Role-Based Access Control, Azure RBAC) auf Namespaceebene hinzu.
Rolle Beschreibung
Besitzer Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.
Mitwirkender Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.
Schemaregistrierungsleser Lesen und Auflisten von Schemaregistrierungsgruppen und Schemas.
Mitwirkender der Schemaregistrierung Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.

Anweisungen zum Erstellen und Registrierung einer Anwendung mit dem Azure-Portal finden Sie unter Registrieren einer App bei Microsoft Entra ID. Notieren Sie sich die Client-ID (Anwendungs-ID), die Mandanten-ID und den geheimen Schlüssel, der im Code verwendet wird.

Nächste Schritte