Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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/binaryczęść 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.
Powiązane projekty
