Udostępnij za pośrednictwem


Biblioteka klienta programu Azure Schema Registry Avro Serializer dla języka JavaScript — wersja 1.0.0

Usługa Azure Schema Registry to usługa repozytorium schematów hostowana przez Azure Event Hubs, zapewniając magazyn schematów, przechowywanie wersji i zarządzanie nimi. Ten pakiet zapewnia serializator Avro, który może serializować i deserializować ładunki zawierające dane serializowane Avro.

Linki kluczowe:

Wprowadzenie

Wymagania wstępne

Instalowanie pakietu @azure/schema-registry-avro

Zainstaluj bibliotekę klienta usługi Azure analiza tekstu dla języka JavaScript przy użyciu polecenia npm:

npm install @azure/schema-registry-avro

Kluczowe pojęcia

AvroSerializer

Udostępnia interfejs API serializacji do i deserializacji z kodowania binarnego Avro opakowane w komunikat z polem typu zawartości zawierającym identyfikator schematu. Używa SchemaRegistryClient z pakietu @azure/schema-registry w celu pobrania identyfikatorów schematu z definicji schematu lub odwrotnie. Podany interfejs API ma wewnętrzną pamięć podręczną, aby uniknąć wywoływania usługi rejestru schematów, gdy jest to możliwe.

Komunikaty

Domyślnie serializator tworzy komunikaty ze strukturą w następujący sposób:

  • data: tablica bajtów zawierająca dane w kodowaniu binarnym Avro. Należy pamiętać, że nie jest to plik kontenera obiektów Avro. Ten ostatni zawiera schemat i tworzy go w celu użycia tego serializatora do przeniesienia schematu z ładunku komunikatu i do rejestru schematów.

  • contentType: ciąg następującego formatu avro/binary+<Schema ID> , w którym avro/binary część sygnalizuje, że ten komunikat ma ładunek serializowany Avro, a <Schema Id> część jest identyfikatorem schematu usługi rejestru schematów przypisanym do schematu używanego do serializacji tego ładunku.

Nie wszystkie usługi obsługi komunikatów obsługują tę samą strukturę komunikatów. Aby umożliwić integrację z takimi usługami, serializator może działać na niestandardowych strukturach komunikatów, ustawiając messageAdapter opcję w konstruktorze z odpowiednim producentem i odbiorcą komunikatów. Biblioteki klienta obsługi komunikatów platformy Azure eksportują domyślne karty dla ich typów komunikatów.

Przykłady

Serializowanie i deserializowanie s @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);

Rozwiązywanie problemów

Serializator Avro komunikuje się z usługą Rejestru schematów zgodnie z potrzebami w celu zarejestrowania schematów lub wykonywania zapytań, a te wywołania usługi mogą zgłosić błąd RESTError. Ponadto błędy typu Error będą zgłaszane w przypadku niepowodzenia serializacji lub deserializacji. Właściwość cause będzie zawierać podstawowy błąd, który został zgłoszony z biblioteki implementacji Avro.

Rejestrowanie

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną AZURE_LOG_LEVEL środowiskową na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel polecenie w pliku @azure/logger:

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

setLogLevel("info");

Następne kroki

Zapoznaj się z katalogiem samples , aby zapoznać się ze szczegółowymi przykładami dotyczącymi korzystania z tej biblioteki.

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.

Wrażenia