Share via


Azure Schema Registry Avro Serializer-klientbibliotek för JavaScript – version 1.0.0

Azure Schema Registry är en schemalagringsplatstjänst som hanteras av Azure Event Hubs, som tillhandahåller schemalagring, versionshantering och hantering. Det här paketet tillhandahåller en Avro-serialiserare som kan serialisera och deserialisera nyttolaster som innehåller Avro-serialiserade data.

Nyckellänkar:

Komma igång

Förutsättningar

Installera @azure/schema-registry-avro-paketet

Installera Azure Textanalys-klientbiblioteket för JavaScript med npm:

npm install @azure/schema-registry-avro

Viktiga begrepp

AvroSerializer

Tillhandahåller API för att serialisera till och deserialisera från Avro Binary Encoding omslutet i ett meddelande med ett innehållstypfält som innehåller schema-ID:t. Använder SchemaRegistryClient från paketet @azure/schema-registry för att hämta schema-ID:t från schemadefinitionen eller tvärtom. Det angivna API:et har intern cache för att undvika att anropa schemaregistertjänsten när det är möjligt.

Meddelanden

Som standard skapar serialiseraren meddelanden som är strukturerade på följande sätt:

  • data: en bytematris som innehåller data i Avro Binary Encoding. Observera att det inte är Avro-objektcontainerfilen. Det senare innehåller schemat och att skapa det minskar syftet med att använda den här serialiseraren för att flytta schemat från meddelandenyttolasten och till schemaregistret.

  • contentType: en sträng i följande format avro/binary+<Schema ID> där avro/binary delen signalerar att det här meddelandet har en Avro-serialiserad nyttolast och <Schema Id> delen är schema-ID:t som schemaregistertjänsten har tilldelats till schemat som används för att serialisera den här nyttolasten.

Alla meddelandetjänster stöder inte samma meddelandestruktur. För att möjliggöra integrering med sådana tjänster kan serialiseraren agera på anpassade meddelandestrukturer genom att ange messageAdapter alternativet i konstruktorn med en motsvarande meddelandeproducent och konsument. Azure-meddelandeklientbibliotek exporterar standardkort för sina meddelandetyper.

Exempel

Serialisera och deserialisera ett @azure/event-hubs's EventData

const { DefaultAzureCredential } = require("@azure/identity");
import { createEventDataAdapter } from "@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);

Felsökning

Avro-serialiseraren kommunicerar med Schema Registry-tjänsten efter behov för att registrera eller fråga scheman och dessa tjänstanrop kan utlösa en RestError. Dessutom utlöses fel av typen Error när serialisering eller deserialisering misslyckas. Egenskapen cause innehåller det underliggande fel som utlöstes från Avro-implementeringsbiblioteket.

Loggning

Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg över HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:

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

setLogLevel("info");

Nästa steg

Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.

När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med ytterligare frågor eller kommentarer.

Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.

Visningar