Freigeben über


Azure Schema Registry Avro Serializer-Clientbibliothek für JavaScript – Version 1.1.0

Azure Schema Registry ist ein von Azure Event Hubs gehosteter Schemarepositorydienst, der Schemaspeicher, Versionsverwaltung und -verwaltung bereitstellt. Dieses Paket bietet einen Avro-Serialisierer, der Nutzlasten mit avro-serialisierten Daten serialisieren und deserialisieren kann.

Wichtige Links:

Erste Schritte

Voraussetzungen

Installieren Sie das Paket @azure/schema-registry-avro.

Installieren Sie die Azure Textanalyse-Clientbibliothek für JavaScript mit npm:

npm install @azure/schema-registry-avro

Wichtige Begriffe

AvroSerializer

Stellt eine API zum Serialisieren und Deserialisieren von Avro Binary Encoding in einer Nachricht mit einem Inhaltstypfeld mit der Schema-ID bereit. Verwendet SchemaRegistryClient aus dem paket @azure/schema-registry, um Schema-IDs aus der Schemadefinition abzurufen oder umgekehrt. Die bereitgestellte API verfügt über einen internen Cache, um den Aufruf des Schemaregistrierungsdiensts nach Möglichkeit zu vermeiden.

Nachrichten

Standardmäßig erstellt das Serialisierungsprogramm Nachrichten, die wie folgt strukturiert sind:

  • data: ein Bytearray, das Daten in der Binären Avro-Codierung enthält. Beachten Sie, dass es SICH NICHT um eine Avro-Objektcontainerdatei handelt. Letzteres schließt das Schema ein, und das Erstellen dieses Schemas verfehlt den Zweck der Verwendung dieses Serialisierers, um das Schema aus der Nachrichtennutzlast in die Schemaregistrierung zu verschieben.

  • contentType: Eine Zeichenfolge im folgenden Format avro/binary+<Schema ID> , bei der das avro/binary Teil signalisiert, dass diese Nachricht über eine avro-serialisierte Nutzlast verfügt und das <Schema Id> Teil die Schema-ID ist, die der Schemaregistrierungsdienst dem Schema zugewiesen ist, das zum Serialisieren dieser Nutzlast verwendet wird.

Nicht alle Messagingdienste unterstützen dieselbe Nachrichtenstruktur. Um die Integration mit solchen Diensten zu ermöglichen, kann das Serialisierer auf benutzerdefinierte Nachrichtenstrukturen reagieren, indem die messageAdapter Option im Konstruktor mit einem entsprechenden Nachrichtenproduzenten und Consumer festgelegt wird. Azure Messaging-Clientbibliotheken exportieren Standardadapter für ihre Nachrichtentypen.

Beispiele

Serialisieren und Deserialisieren von ' @azure/event-hubss EventData

const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@azure/event-hubs");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const { AvroSerializer } = require("@azure/schema-registry-avro");

const client = new SchemaRegistryClient(
  "<fully qualified namespace>",
  new DefaultAzureCredential()
);
const serializer = new AvroSerializer(client, {
  groupName: "<group>",
  messageAdapter: createEventDataAdapter(),
});

// Example Avro schema
const schema = JSON.stringify({
  type: "record",
  name: "Rating",
  namespace: "my.example",
  fields: [{ name: "score", type: "int" }],
});

// Example value that matches the Avro schema above
const value = { score: 42 };

// Serialize value to a message
const message = await serializer.serialize(value, schema);

// Deserialize a message to value
const deserializedValue = await serializer.deserialize(message);

Problembehandlung

Der Avro-Serialisierer kommuniziert bei Bedarf mit dem Schemaregistrierungsdienst , um Schemas zu registrieren oder abzufragen, und diese Dienstaufrufe können einen RestError auslösen. Darüber hinaus werden Fehler vom Typ Error ausgelöst, wenn die Serialisierung oder Deserialisierung fehlschlägt. Die cause -Eigenschaft enthält den zugrunde liegenden Fehler, der aus der Avro-Implementierungsbibliothek ausgelöst wurde.

Protokollierung

Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL auf info fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel in @azure/logger aufrufen:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.

Aufrufe