Klientská knihovna Serializer služby Azure Schema Registry Avro pro JavaScript – verze 1.0.0
Azure Schema Registry je služba úložiště schémat hostovaná službou Azure Event Hubs, která poskytuje úložiště schémat, správu verzí a správu. Tento balíček poskytuje serializátor Avro schopný serializovat a deserializovat datové části obsahující serializovaná data Avro.
Klíčové odkazy:
Začínáme
Požadavky
- Předplatné Azure
- Existující prostředek registru schématu
Nainstalujte balíček @azure/schema-registry-avro
.
Nainstalujte klientskou knihovnu Azure Analýza textu pro JavaScript pomocí npm
příkazu :
npm install @azure/schema-registry-avro
Klíčové koncepty
AvroSerializer
Poskytuje rozhraní API pro serializaci a deserializaci z binárního kódování Avro zabalené ve zprávě s polem typu obsahu obsahujícím ID schématu. Používá SchemaRegistryClient
z balíčku @azure/schema-registry k získání ID schématu z definice schématu nebo naopak. Zadané rozhraní API má interní mezipaměť, aby se zabránilo volání služby registru schématu, pokud je to možné.
Zprávy
Ve výchozím nastavení serializátor vytvoří zprávy strukturované takto:
data
: bajtové pole obsahující data v binárním kódování Avro. Všimněte si, že se nejedná o soubor kontejneru objektů Avro. Druhý obsahuje schéma a jeho vytvoření porazí účel použití tohoto serializátoru k přesunutí schématu z datové části zprávy do registru schématu.contentType
: Řetězec následujícího formátuavro/binary+<Schema ID>
, kdeavro/binary
část signalizuje, že tato zpráva má datovou část serializovanou Avro a<Schema Id>
část je ID schématu služba registru schématu přiřazená schématu použitému k serializaci této datové části.
Ne všechny služby zasílání zpráv podporují stejnou strukturu zpráv. Chcete-li povolit integraci s těmito službami, serializátor může pracovat s vlastní struktury zpráv nastavením messageAdapter
možnosti v konstruktoru s odpovídajícím tvůrcem a příjemcem zpráv. Klientské knihovny zasílání zpráv Azure exportují výchozí adaptéry pro jejich typy zpráv.
Příklady
Serializovat a deserializovat @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);
Řešení potíží
Serializátor Avro komunikuje se službou registru schématu podle potřeby k registraci nebo dotazování schémat a tato volání služby mohou vyvolat chybu RESTError. Kromě toho budou vyvolána chyby typu Error
při selhání serializace nebo deserializace. Vlastnost cause
bude obsahovat základní chybu, která byla vyvolán z knihovny implementace Avro.
protokolování
Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL
prostředí na info
. Případně je možné protokolování povolit za běhu voláním setLogLevel
v :@azure/logger
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Další kroky
Podrobné příklady použití této knihovny najdete v adresáři samples .
Přispívání
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com
Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.
Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo se obraťte na opencode@microsoft.com případné další dotazy nebo komentáře.
Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.