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 formatoavro/binary+<Schema ID>
em que aavro/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.