Compartir a través de


Biblioteca cliente avro del Registro de esquemas de Azure para JavaScript: versión 1.0.0

Azure Schema Registry es un servicio de repositorio de esquemas hospedado por Azure Event Hubs, lo que proporciona almacenamiento de esquemas, control de versiones y administración. Este paquete proporciona un serializador Avro capaz de serializar y deserializar cargas que contienen datos serializados de Avro.

Vínculos principales:

Introducción

Requisitos previos

Instalar el paquete @azure/schema-registry-avro

Instale la biblioteca cliente de Azure Text Analytics para JavaScript con npm:

npm install @azure/schema-registry-avro

Conceptos clave

AvroSerializer

Proporciona api para serializar y deserializar desde la codificación binaria avro encapsulada en un mensaje con un campo de tipo de contenido que contiene el identificador de esquema. Usa SchemaRegistryClient del paquete @azure/schema-registry para obtener identificadores de esquema de la definición de esquema o viceversa. La API proporcionada tiene caché interna para evitar llamar al servicio del registro de esquemas siempre que sea posible.

error de Hadoop

De forma predeterminada, el serializador creará mensajes estructurados de la siguiente manera:

  • data: una matriz de bytes que contiene datos en la codificación binaria avro. Tenga en cuenta que NO es archivo contenedor de objetos Avro. Este último incluye el esquema y su creación anula el propósito de usar este serializador para sacar el esquema de la carga del mensaje y al registro de esquema.

  • contentType: una cadena del siguiente formato avro/binary+<Schema ID> donde la avro/binary parte indica que este mensaje tiene una carga serializada de Avro y la <Schema Id> parte es el identificador de esquema, el servicio registro de esquema asignado al esquema usado para serializar esta carga.

No todos los servicios de mensajería admiten la misma estructura de mensajes. Para habilitar la integración con estos servicios, el serializador puede actuar en estructuras de mensajes personalizadas estableciendo la messageAdapter opción en el constructor con un productor de mensajes y un consumidor correspondientes. Las bibliotecas cliente de mensajería de Azure exportan adaptadores predeterminados para sus tipos de mensajes.

Ejemplos

Serialización y deserialización de una clase @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);

Solución de problemas

El serializador Avro se comunica con el servicio registro de esquemas según sea necesario para registrar o consultar esquemas y esas llamadas de servicio podrían producir un restError. Además, se producirán errores de tipo Error cuando se produzca un error en la serialización o deserialización. La cause propiedad contendrá el error subyacente que se produjo desde la biblioteca de implementación de Avro.

Registro

La habilitación del registro puede ayudar a descubrir información útil sobre los errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en @azure/logger:

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

setLogLevel("info");

Pasos siguientes

Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones