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 formatuavro/binary+<Schema ID>
, w którymavro/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-hubs
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);
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.