Поделиться через


Клиентская библиотека Avro Serializer реестра схем Azure для JavaScript версии 1.0.0

Реестр схем Azure — это служба репозитория схем, размещенная Центры событий Azure, обеспечивающая хранение схем, управление версиями и управление ими. Этот пакет предоставляет сериализатор Avro, способный сериализовать и десериализовать полезные данные, содержащие сериализованные данные Avro.

Основные ссылки:

Начало работы

Предварительные требования

Установите пакет @azure/schema-registry-avro.

Установите клиентскую библиотеку azure Анализ текста для JavaScript с помощью npm:

npm install @azure/schema-registry-avro

Основные понятия

AvroSerializer

Предоставляет API для сериализации и десериализации из двоичного кодирования Avro, заключенного в сообщение с полем типа контента, содержащим идентификатор схемы. Использует из SchemaRegistryClientпакета @azure/schema-registry для получения идентификаторов схемы из определения схемы или наоборот. Предоставленный API имеет внутренний кэш, чтобы по возможности избежать вызова службы реестра схем.

Сообщения

По умолчанию сериализатор создает сообщения, структурированные следующим образом:

  • data: массив байтов, содержащий данные в двоичном кодировании Avro. Обратите внимание, что это НЕ файл контейнера объектов Avro. Последний включает схему и ее создание не позволяет использовать этот сериализатор для перемещения схемы из полезных данных сообщения в реестр схем.

  • contentType: строка следующего формата avro/binary+<Schema ID> , в которой avro/binary часть сообщает о том, что это сообщение имеет сериализованные avro полезные данные, а <Schema Id> часть — идентификатор схемы, назначенный службе реестра схем схеме, используемой для сериализации этих полезных данных.

Не все службы обмена сообщениями поддерживают одинаковую структуру сообщений. Чтобы включить интеграцию с такими службами, сериализатор может действовать с пользовательскими структурами сообщений, задавая messageAdapter параметр в конструкторе с соответствующими создателем и потребителем сообщений. Клиентские библиотеки обмена сообщениями Azure экспортируют адаптеры по умолчанию для своих типов сообщений.

Примеры

Сериализация и десериализация @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);

Устранение неполадок

Сериализатор Avro взаимодействует со службой реестра схем по мере необходимости для регистрации или запроса схем, и эти вызовы служб могут вызвать RestError. Кроме того, ошибки типа Error будут возникать при сбое сериализации или десериализации. Свойство cause будет содержать базовую ошибку, которая была выдана из библиотеки реализации Avro.

Ведение журнала

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения, вызвав setLogLevel в @azure/logger:

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

setLogLevel("info");

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры