Partilhar via


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 formato avro/binary+<Schema ID> em que a avro/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.

Impressões