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
- Langganan Azure
- Sumber daya Registri Skema yang ada
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 formatavro/binary+<Schema ID>
berikut di manaavro/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-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);
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.
Proyek terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk