Bagikan melalui


Pustaka klien Azure Schema Registry Avro Serializer untuk JavaScript - versi 1.0.0

Azure Schema Registry adalah layanan repositori skema yang dihosting oleh Azure Event Hubs, menyediakan penyimpanan skema, penerapan versi, dan manajemen. Paket ini menyediakan serializer Avro yang mampu menserialisasikan dan mendeserialisasi payload yang berisi data serial Avro.

Tautan utama:

Memulai

Prasyarat

Pasang paket @azure/schema-registry-avro

Instal pustaka klien Azure Text Analytics untuk JavaScript dengan npm:

npm install @azure/schema-registry-avro

Konsep utama

AvroSerializer

Menyediakan API untuk menserialisasikan dan mendeserialisasi dari Pengodean Biner Avro yang dibungkus dalam pesan dengan bidang jenis konten yang berisi ID skema. SchemaRegistryClient Menggunakan dari paket @azure/schema-registry untuk mendapatkan ID skema dari definisi skema atau sebaliknya. API yang disediakan memiliki cache internal untuk menghindari panggilan layanan registri skema jika memungkinkan.

Pesan

Secara default, serializer akan membuat pesan yang terstruktur sebagai berikut:

  • data: array byte yang berisi data dalam Pengodean Biner Avro. Perhatikan bahwa ini BUKAN File Kontainer Objek Avro. Yang terakhir mencakup skema dan membuatnya mengalahkan tujuan menggunakan serializer ini untuk memindahkan skema keluar dari payload pesan dan ke registri skema.

  • contentType: string format avro/binary+<Schema ID> berikut di mana avro/binary bagian menandakan bahwa pesan ini memiliki payload berseri Avro dan <Schema Id> bagiannya adalah ID Skema layanan Registri Skema yang ditetapkan ke skema yang digunakan untuk membuat serial payload ini.

Tidak semua layanan olahpesan mendukung struktur pesan yang sama. Untuk mengaktifkan integrasi dengan layanan tersebut, serializer dapat bertindak pada struktur pesan kustom dengan mengatur messageAdapter opsi di konstruktor dengan produsen dan konsumen pesan yang sesuai. Pustaka klien olahpesan Azure mengekspor adaptor default untuk jenis pesan mereka.

Contoh

Menserialisasikan dan mendeserialisasi @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);

Pemecahan Masalah

Serializer Avro berkomunikasi dengan layanan Schema Registry sesuai kebutuhan untuk mendaftarkan atau mengkueri skema dan panggilan layanan tersebut dapat melempar RestError. Selain itu, kesalahan jenis Error akan dilemparkan ketika serialisasi atau deserialisasi gagal. Properti cause akan berisi kesalahan mendasar yang dilemparkan dari pustaka implementasi Avro.

Pencatatan

Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:

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

setLogLevel("info");

Langkah berikutnya

Silakan lihat direktori sampel untuk contoh terperinci tentang cara menggunakan pustaka ini.

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.

Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.

Tayangan