Biblioteca de clientes do Avro Serializer do Registro de Esquema do Azure para JavaScript – versão 1.0.0

O Registro de Esquema do Azure é um serviço de repositório de esquema hospedado por Hubs de Eventos do Azure, fornecendo armazenamento de esquema, controle de versão e gerenciamento. Esse pacote fornece um serializador Avro capaz de serializar e desserializar cargas que contêm dados serializados pelo Avro.

Links principais:

Introdução

Pré-requisitos

Instalar o pacote @azure/schema-registry-avro

Instale a biblioteca de clientes do Azure Análise de Texto para JavaScript com npm:

npm install @azure/schema-registry-avro

Principais conceitos

AvroSerializer

Fornece a API para serializar e desserializar da Codificação Binária do Avro encapsulada em uma mensagem com um campo de tipo de conteúdo que contém a ID do esquema. SchemaRegistryClient Usa do pacote @azure/schema-registry para obter IDs de esquema da definição de esquema ou vice-versa. A API fornecida tem cache interno para evitar chamar o serviço de registro de esquema quando possível.

Mensagens

Por padrão, o serializador criará mensagens estruturadas da seguinte maneira:

  • data: uma matriz de bytes que contém dados na Codificação Binária do Avro. Observe que ele não é um arquivo de contêiner de objeto Avro. Este último inclui o esquema e criá-lo derrota a finalidade de usar esse serializador para mover o esquema para fora do conteúdo da mensagem e para o registro de esquema.

  • contentType: uma cadeia de caracteres do seguinte formato avro/binary+<Schema ID> em que a avro/binary parte sinaliza que essa mensagem tem uma carga serializada do Avro e a <Schema Id> parte é a ID de esquema que o serviço do Registro de Esquema atribuiu ao esquema usado para serializar essa carga.

Nem todos os serviços de mensagens são compatíveis com a mesma estrutura de mensagens. Para habilitar a integração com esses serviços, o serializador pode agir em estruturas de mensagens personalizadas definindo a opção messageAdapter no construtor com um produtor e consumidor de mensagens correspondentes. As bibliotecas de cliente de mensagens do Azure exportam adaptadores padrão para seus tipos de mensagem.

Exemplos

Serializar e desserializar um @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);

Solução de problemas

O serializador Avro se comunica com o serviço registro de esquema conforme necessário para registrar ou consultar esquemas e essas chamadas de serviço podem gerar um RestError. Além disso, erros do tipo Error serão gerados quando a serialização ou desserialização falhar. A cause propriedade conterá o erro subjacente que foi gerado da biblioteca de implementação do Avro.

Registro em log

A habilitação do log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o log pode ser habilitado no runtime chamando setLogLevel em @azure/logger:

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

setLogLevel("info");

Próximas etapas

Examine o diretório de exemplos para obter exemplos detalhados sobre como usar essa biblioteca.

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.

Impressões