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

Nainstalujte balíček @azure/schema-registry-avro.

Nainstalujte klientskou knihovnu Azure Analýza textu pro JavaScript pomocí npmpří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átu avro/binary+<Schema ID> , kde avro/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-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);

Ř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.

Imprese