適用于 JavaScript 的 Azure 架構登錄 Avro Serializer 用戶端程式庫 - 1.0.0 版
Azure 架構登錄是由Azure 事件中樞裝載的架構存放庫服務,提供架構儲存體、版本控制和管理。 此套件提供 Avro 序列化程式,能夠序列化和還原序列化包含 Avro 序列化資料的承載。
重要連結:
開始使用
必要條件
- Azure 訂用帳戶
- 現有的 架構登錄資源
安裝 @azure/schema-registry-avro
套件
使用 npm
安裝適用于 JavaScript 的 Azure 文字分析 用戶端程式庫:
npm install @azure/schema-registry-avro
重要概念
AvroSerializer
提供 API,以序列化至包含架構識別碼的內容類型欄位,從包裝在訊息中的 Avro 二進位編碼進行序列化和還原序列化。 從@azure/schema-registry套件使用 SchemaRegistryClient
,從架構定義取得架構識別碼,反之亦然。 提供的 API 具有內部快取,以避免盡可能呼叫架構登錄服務。
訊息
根據預設,序列化程式會建立結構化的訊息,如下所示:
data
:位元組陣列,包含 Avro 二進位編碼中的資料。 請注意,它不是 Avro 物件容器檔案。 後者包含架構,並建立架構會破壞使用此序列化程式將架構移出訊息承載和架構登錄的目的。contentType
:下列格式avro/binary+<Schema ID>
的字串,avro/binary
其中元件會發出此訊息具有 Avro 序列化承載的訊號,而<Schema Id>
元件是指派給架構登錄服務用來序列化此承載的架構識別碼。
並非所有傳訊服務都支援相同的訊息結構。 若要啟用與這類服務的整合,序列化程式可以使用對應的訊息產生者和取用者,在建構函式中設定 messageAdapter
選項,以處理自訂訊息結構。 Azure 傳訊用戶端程式庫會匯出其訊息類型的預設配接器。
範例
序列化和還原序列化 @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);
疑難排解
Avro 序列化程式會視需要與 架構登錄 服務通訊,以註冊或查詢架構,而這些服務呼叫可能會擲回 RestError。 此外,序列化或還原序列化失敗時,將會擲回 類型的 Error
錯誤。 屬性 cause
將包含從 Avro 實作程式庫擲回的基礎錯誤。
記錄
啟用記錄有助於找出失敗的相關實用資訊。 若要查看 HTTP 的要求和回應記錄,請將 AZURE_LOG_LEVEL
環境變數設定為 info
。 或者,您可以在 @azure/logger
中呼叫 setLogLevel
,以在執行階段啟用記錄:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
後續步驟
如需如何使用此程式庫的詳細 範例 ,請參閱範例目錄。
參與
此專案歡迎參與和提供建議。 大部分的參與都要求您同意「參與者授權合約 (CLA)」,宣告您有權且確實授與我們使用投稿的權利。 如需詳細資料,請前往 https://cla.microsoft.com 。
當您提交提取要求時,CLA Bot 會自動判斷您是否需要提供 CLA,並適當地裝飾 PR (例如標籤、註解)。 請遵循 bot 提供的指示。 您只需要使用我們的 CLA 在所有存放庫上執行此動作一次。
此專案採用 Microsoft Open Source Code of Conduct (Microsoft 開放原始碼管理辦法)。 如需詳細資訊,請參閱管理辦法常見問題集,如有任何其他問題或意見請連絡 opencode@microsoft.com。
如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。