Condividi tramite


Libreria client avro serializer del Registro schemi di Azure per JavaScript - versione 1.0.0

Registro schemi di Azure è un servizio di repository di schemi ospitato da Hub eventi di Azure, che fornisce archiviazione dello schema, controllo delle versioni e gestione. Questo pacchetto fornisce un serializzatore Avro in grado di serializzare e deserializzare i payload contenenti dati serializzati avro.

Collegamenti principali:

Introduzione

Prerequisiti

Installare il pacchetto @azure/schema-registry-avro

Installare la libreria client di Azure Analisi del testo per JavaScript con npm:

npm install @azure/schema-registry-avro

Concetti chiave

AvroSerializer

Fornisce l'API per serializzare e deserializzare dalla codifica binaria Avro di cui è stato eseguito il wrapping in un messaggio con un campo del tipo di contenuto contenente l'ID dello schema. SchemaRegistryClient Usa dal pacchetto @azure/schema-registry per ottenere gli ID dello schema dalla definizione dello schema o viceversa. L'API fornita ha una cache interna per evitare di chiamare il servizio registro schemi quando possibile.

Messaggi

Per impostazione predefinita, il serializzatore creerà messaggi strutturati nel modo seguente:

  • data: matrice di byte contenente dati nella codifica binaria Avro. Si noti che non si tratta del file contenitore di oggetti Avro. Quest'ultimo include lo schema e la sua creazione sconfigge lo scopo di usare questo serializzatore per spostare lo schema dal payload del messaggio e nel Registro di sistema dello schema.

  • contentType: stringa del formato avro/binary+<Schema ID> seguente in cui la parte segnala che il avro/binary messaggio ha un payload serializzato Avro e la <Schema Id> parte è l'ID schema assegnato al servizio Registro schemi assegnato allo schema usato per serializzare questo payload.

Non tutti i servizi di messaggistica supportano la stessa struttura dei messaggi. Per abilitare l'integrazione con tali servizi, il serializzatore può agire su strutture di messaggi personalizzate impostando l'opzione messageAdapter nel costruttore con un producer e un consumer di messaggi corrispondenti. Le librerie client di messaggistica di Azure esportano gli adattatori predefiniti per i tipi di messaggio.

Esempio

Serializzare e deserializzare un ' @azure/event-hubss 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);

Risoluzione dei problemi

Il serializzatore Avro comunica con il servizio Registro schemi in base alle esigenze per registrare o eseguire query su schemi e tali chiamate al servizio potrebbero generare un'eccezione RestError. Inoltre, gli errori di tipo Error verranno generati quando la serializzazione o la deserializzazione non riesce. La cause proprietà conterrà l'errore sottostante generato dalla libreria di implementazione avro.

Registrazione

L'abilitazione della registrazione consente di individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL su info. In alternativa, la registrazione può essere abilitata in fase di esecuzione chiamando setLogLevel in @azure/logger:

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

setLogLevel("info");

Passaggi successivi

Per esempi dettagliati su come usare questa libreria, vedere la directory degli esempi .

Contributo

In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, vedere https://cla.microsoft.com.

Quando si invia una richiesta pull, un bot CLA determina automaticamente se è necessario specificare un contratto CLA e completare la richiesta pull in modo appropriato (ad esempio con un'etichetta e un commento). Seguire le istruzioni specificate dal bot. È sufficiente eseguire questa operazione una sola volta per tutti i repository che usano il contratto CLA Microsoft.

Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento Open Source di Microsoft) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.

Per contribuire a questa libreria, leggere la guida ai contributi per altre informazioni su come compilare e testare il codice.

Impression