Aracılığıyla paylaş


JavaScript için Azure Schema Registry Avro Seri hale getirici istemci kitaplığı - sürüm 1.1.0

Azure Schema Registry, Azure Event Hubs tarafından barındırılan, şema depolama, sürüm oluşturma ve yönetim sağlayan bir şema deposu hizmetidir. Bu paket, Avro serileştirilmiş verileri içeren yükleri seri hale getirebilen ve seri durumdan çıkarabilen bir Avro seri hale getirici sağlar.

Önemli bağlantılar:

Başlarken

Önkoşullar

@azure/schema-registry-avro paketini yükleyin

ile npmJavaScript için Azure Metin Analizi istemci kitaplığını yükleyin:

npm install @azure/schema-registry-avro

Önemli kavramlar

AvroSerializer

Şema kimliğini içeren içerik türü alanına sahip bir iletide sarmalanan Avro İkili Kodlama'ya seri hale getirmek ve bu kodlamadan seri durumdan çıkarma api'si sağlar. Şema tanımından şema kimliklerini almak için @azure/schema-registry paketinden (veya tam tersi) kullanırSchemaRegistryClient. Mümkün olduğunda şema kayıt defteri hizmetinin çağrılmasını önlemek için sağlanan API'nin iç önbelleği vardır.

İletiler

Varsayılan olarak, seri hale getirici aşağıdaki gibi yapılandırılmış iletiler oluşturur:

  • data: Avro İkili Kodlaması'ndaki verileri içeren bir bayt dizisi. Bunun Avro Nesne Kapsayıcı Dosyası DEĞİlDR. İkincisi şemayı içerir ve oluşturmak, şemayı ileti yükünün dışına ve şema kayıt defterine taşımak için bu seri hale getiriciyi kullanma amacını alt eder.

  • contentType: bölümün bu iletinin Avro serileştirilmiş yükü olduğunu gösterdiği ve <Schema Id> bölümün bu yükü seri hale getirmek için kullanılan şemaya atanan Şema Kayıt Defteri hizmetinin Şema Kimliği olduğu aşağıdaki biçimde avro/binary+<Schema ID>avro/binary bir dize.

Tüm mesajlaşma hizmetleri aynı ileti yapısını desteklemez. Bu tür hizmetlerle tümleştirmeyi etkinleştirmek için seri hale getirici, oluşturucuda ilgili ileti üreticisi ve tüketici ile seçeneğini ayarlayarak messageAdapter özel ileti yapıları üzerinde işlem yapabilir. Azure mesajlaşma istemci kitaplıkları, ileti türleri için varsayılan bağdaştırıcıları dışarı aktarır.

Örnekler

Bir @azure/event-hubs'leri seri hale getirme ve seri durumdan çıkarma EventData

const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@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);

Sorun giderme

Avro seri hale getiricisi şemaları kaydetmek veya sorgulamak için şema kayıt defteri hizmetiyle gerektiği gibi iletişim kurar ve bu hizmet çağrıları bir RestError oluşturabilir. Ayrıca, serileştirme veya seri durumdan çıkarma başarısız olduğunda tür Error hataları oluşur. özelliği, cause Avro uygulama kitaplığından oluşturulmuş temel alınan hatayı içerir.

Günlüğe Kaydetme

Günlüğe kaydetmenin etkinleştirilmesi hatalarla ilgili yararlı bilgilerin ortaya çıkarılmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, günlüğü çalışma zamanında içinde çağrılarak setLogLevel@azure/loggeretkinleştirilebilir:

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

setLogLevel("info");

Sonraki adımlar

Bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.

Katkıda bulunma

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.

Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorularınız veya yorumlarınızla iletişime geçin opencode@microsoft.com .

Bu kitaplığa katkıda bulunmak isterseniz, kodu derleme ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.

İzlenimler