Partager via


Bibliothèque de client Azure Schema Registry Avro Serializer pour JavaScript - version 1.0.0

Azure Schema Registry est un service de référentiel de schémas hébergé par Azure Event Hubs, qui fournit le stockage des schémas, le contrôle de version et la gestion. Ce package fournit un sérialiseur Avro capable de sérialiser et désérialiser des charges utiles contenant des données avro-sérialisées.

Liens clés :

Prise en main

Prérequis

Installez le package @azure/schema-registry-avro

Installez la bibliothèque de client Azure Analyse de texte pour JavaScript avec npm:

npm install @azure/schema-registry-avro

Concepts clés

AvroSerializer

Fournit l’API pour sérialiser et désérialiser à partir de l’encodage binaire Avro encapsulé dans un message avec un champ de type de contenu contenant l’ID de schéma. Utilise SchemaRegistryClient à partir du package @azure/schema-registry pour obtenir des ID de schéma à partir de la définition de schéma ou vice versa. L’API fournie dispose d’un cache interne pour éviter d’appeler le service de registre de schémas lorsque cela est possible.

Messages

Par défaut, le sérialiseur crée des messages structurés comme suit :

  • data: tableau d’octets contenant des données dans l’encodage binaire Avro. Notez qu’il ne s’agit PAS du fichier conteneur d’objets Avro. Ce dernier inclut le schéma et sa création va à l’encontre de l’utilisation de ce sérialiseur pour déplacer le schéma hors de la charge utile du message et dans le registre de schémas.

  • contentType: chaîne au format avro/binary+<Schema ID> suivant où le avro/binary composant indique que ce message a une charge utile avro-sérialisée et la <Schema Id> partie est l’ID de schéma que le service Registre de schéma a affecté au schéma utilisé pour sérialiser cette charge utile.

Tous les services de messagerie ne prennent pas en charge la même structure de message. Pour activer l’intégration à ces services, le sérialiseur peut agir sur des structures de messages personnalisées en définissant l’option messageAdapter dans le constructeur avec un producteur et un consommateur de messages correspondants. Les bibliothèques clientes de messagerie Azure exportent les adaptateurs par défaut pour leurs types de messages.

Exemples

Sérialiser et désérialiser un @azure/event-hubsEventData

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);

Dépannage

Le sérialiseur Avro communique avec le service Registre de schémas si nécessaire pour inscrire ou interroger des schémas et ces appels de service peuvent lever une erreur RestError. En outre, des erreurs de type Error sont générées en cas d’échec de la sérialisation ou de la désérialisation. La cause propriété contient l’erreur sous-jacente qui a été levée à partir de la bibliothèque d’implémentation Avro.

Journalisation

L’activation de la journalisation peut vous aider à mieux comprendre les échecs. Pour avoir un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans @azure/logger :

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

setLogLevel("info");

Étapes suivantes

Consultez le répertoire d’exemples pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.

Impressions