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
- En Azure-prenumeration
- En befintlig schemaregisterresurs
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 formatavro/binary+<Schema ID>
däravro/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.
Relaterade projekt
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för