Biblioteca de cliente Do Serializador Avro do Registo de Esquemas do Azure para JavaScript – versão 1.0.0
O Registo de Esquemas do Azure é um serviço de repositório de esquemas alojado por Hubs de Eventos do Azure, que fornece armazenamento de esquemas, controlo de versões e gestão. Este pacote fornece um serializador Avro capaz de serializar e anular a serialização de payloads que contêm dados serializados avro.
Ligações principais:
Introdução
Pré-requisitos
Instalar o pacote @azure/schema-registry-avro
Instale a biblioteca de cliente do Azure Análise de Texto para JavaScript com npm
:
npm install @azure/schema-registry-avro
Conceitos-chave
AvroSerializer
Fornece a API para serializar e anular a serialização a partir da Codificação Binária Avro encapsulada numa mensagem com um campo de tipo de conteúdo que contém o ID do esquema. Utiliza SchemaRegistryClient
a partir do pacote @azure/schema-registry para obter IDs de esquema da definição de esquema ou vice-versa. A API fornecida tem cache interna para evitar chamar o serviço de registo de esquemas sempre que possível.
Mensagens
Por predefinição, o serializador irá criar mensagens estruturadas da seguinte forma:
data
: uma matriz de bytes que contém dados na Codificação Binária avro. Tenha em atenção que NÃO é o Ficheiro de Contentor de Objeto Avro. Este último inclui o esquema e a sua criação derrota o objetivo de utilizar este serializador para mover o esquema para fora do payload da mensagem e para o registo de esquema.contentType
: uma cadeia do seguinte formatoavro/binary+<Schema ID>
em que aavro/binary
parte sinaliza que esta mensagem tem um payload serializado avro e a<Schema Id>
parte é o ID de Esquema que o serviço de Registo de Esquemas atribuiu ao esquema utilizado para serializar este payload.
Nem todos os serviços de mensagens suportam a mesma estrutura de mensagens. Para permitir a integração com esses serviços, o serializador pode atuar em estruturas de mensagens personalizadas ao definir a opção messageAdapter
no construtor com um produtor e consumidor de mensagens correspondentes. As bibliotecas de cliente de mensagens do Azure exportam adaptadores predefinidos para os respetivos tipos de mensagens.
Exemplos
Serializar e anular a serialização de 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);
Resolução de problemas
O serializador Avro comunica com o serviço Registo de Esquemas conforme necessário para registar ou consultar esquemas e essas chamadas de serviço podem gerar um RestError. Além disso, serão apresentados erros do tipo Error
quando a serialização ou a desserialização falharem. A cause
propriedade irá conter o erro subjacente que foi gerado a partir da biblioteca de implementação avro.
Registo
Ativar o registo pode ajudar a descobrir informações úteis sobre falhas. Para ver um registo de pedidos e respostas HTTP, defina a variável de AZURE_LOG_LEVEL
ambiente como info
. Em alternativa, o registo pode ser ativado no runtime ao chamar setLogLevel
no @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Passos seguintes
Veja o diretório de exemplos para obter exemplos detalhados sobre como utilizar esta biblioteca.
Contribuir
Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Quando submete um pedido Pull, um bot do CLA determina automaticamente se tem de fornecer um CLA e decorar o PR de forma adequada (por exemplo, etiqueta, comentário). Só tem de seguir as instruções fornecidas pelo bot. Apenas terá de fazer isto uma vez em todos os repositórios com o nosso CLA.
Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, consulte as FAQ do Código de Conduta ou contacte opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.
Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.