適用于 JavaScript 的 Azure 儲存體 Blob 變更摘要用戶端程式庫 - 12.0.0-preview.4 版
伺服器版本:2019-12-12 或更新版本。
變更摘要會提供儲存體帳戶中 Blob 和 Blob 中繼資料發生之所有變更的已排序、保證、持久性、不可變、唯讀交易記錄。 用戶端應用程式可以隨時讀取這些記錄。 變更摘要可讓您建立有效率且可調整的解決方案,以低成本的方式處理 Blob 儲存體帳戶中發生的變更事件。
此專案在 JavaScript 中提供用戶端程式庫,可讓您輕鬆地取用變更摘要。
使用此套件中的用戶端程式庫來:
- 讀取變更摘要事件,全部或一個時間範圍內
- 繼續從儲存位置讀取事件
重要連結:
開始使用
目前支援的環境
- LTS 版本的 Node.js
- Safari、Chrome、Edge 和 Firefox 的最新版本。
如需詳細資訊,請參閱我們的支援原則。
必要條件
安裝套件
安裝適用于 JavaScript 的 Azure 儲存體 Blob 變更摘要用戶端程式庫的慣用方式是使用 npm 套件管理員。 在終端機視窗中輸入下列內容:
npm install @azure/storage-blob-changefeed
驗證用戶端
此程式庫會使用已 BlobServiceClient
驗證的 來初始化。 如需如何驗證 的 BlobServiceClient
儲存體 Blob,請參閱 storage-blob。
相容性
目前,此程式庫只與Node.js相容。
重要概念
變更摘要會以 Blob 的形式儲存在您的儲存體帳戶中,以標準 Blob 定價成本儲存為特殊容器。 您可以根據您的需求來控制這些檔案的保留期間。 變更事件會附加至變更摘要做為 Apache Avro 格式規格中的記錄:精簡、快速、二進位格式,可使用內嵌架構提供豐富的資料結構。 此格式廣泛運用在 Hadoop 生態系統、串流分析和 Azure Data Factory。
此程式庫提供可用來擷取變更事件的用戶端。
範例
初始化變更摘要用戶端
BlobChangeFeedClient
幾乎需要與 初始化相同的參數 BlobServiceClient
。 如需如何建立 Blob 服務用戶端,請參閱 storage-blob 。 以下是使用 的 StorageSharedKeyCredential
範例。
const { StorageSharedKeyCredential } = require("@azure/storage-blob");
const { BlobChangeFeedClient } = require("@azure/storage-blob-changefeed");
// Enter your storage account name and shared key
const account = "<account>";
const accountKey = "<accountkey>";
// Use StorageSharedKeyCredential with storage account and account key
// StorageSharedKeyCredential is only available in Node.js runtime, not in browsers
const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
const changeFeedClient = new BlobChangeFeedClient(
// When using AnonymousCredential, following url should include a valid SAS or support public access
`https://${account}.blob.core.windows.net`,
sharedKeyCredential
);
讀取變更摘要中的所有事件
使用 BlobChangeFeedClient.listChanges()
來取得反覆運算器來逐一查看變更事件。
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
依頁面。
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const eventPage of changeFeedClient.listChanges().byPage()) {
for (const event of eventPage.events) {
changeFeedEvents.push(event);
}
}
使用 continuationToken 繼續讀取事件
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
const firstPage = await changeFeedClient
.listChanges()
.byPage({ maxPageSize: 10 })
.next();
for (const event of firstPage.value.events) {
changeFeedEvents.push(event);
}
// Resume iterating from the previous position with the continuationToken.
for await (const eventPage of changeFeedClient
.listChanges()
.byPage({ continuationToken: firstPage.value.continuationToken })) {
for (const event of eventPage.events) {
changeFeedEvents.push(event);
}
}
讀取時間範圍內的事件
傳遞開始時間和結束時間,以 BlobChangeFeedClient.listChanges()
擷取某個時間範圍內的事件。
請注意,目前變更摘要用戶端會將開始時間向下舍入到最接近的小時,並將結束時間四捨五入到下一小時。
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
const start = new Date(Date.UTC(2020, 1, 21, 22, 30, 0)); // will be rounded down to 22:00
const end = new Date(Date.UTC(2020, 4, 8, 21, 10, 0)); // will be rounded up to 22:00
let changeFeedEvents = [];
// You can also provide just a start or end time.
for await (const event of changeFeedClient.listChanges({ start, end })) {
changeFeedEvents.push(event);
}
疑難排解
啟用記錄有助於找出失敗的相關實用資訊。 若要查看 HTTP 的要求和回應記錄,請將 AZURE_LOG_LEVEL
環境變數設定為 info
。 或者,您可以在 @azure/logger
中呼叫 setLogLevel
,以在執行階段啟用記錄:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
後續步驟
更多程式碼範例:
參與
如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。
另請參閱 儲存體特定指南 ,以取得設定儲存體程式庫測試環境的其他資訊。