Klientská knihovna kanálu změn objektů blob služby Azure Storage pro JavaScript – verze 12.0.0-preview.4
Verze serveru: 2019-12-12 nebo novější.
Kanál změn poskytuje uspořádaný, zaručený, trvalý, neměnný a jen pro čtení transakční protokol všech změn, ke kterým dochází v objektech blob a metadatech objektů blob ve vašem účtu úložiště. Klientské aplikace můžou tyto protokoly kdykoli číst. Kanál změn umožňuje vytvářet efektivní a škálovatelná řešení, která zpracovávají události změn, ke kterým dochází ve vašem účtu Blob Storage, za nízkou cenu.
Tento projekt poskytuje v JavaScriptu klientskou knihovnu, která usnadňuje využívání kanálu změn.
Pomocí klientských knihoven v tomto balíčku:
- Čtení událostí kanálu změn, všech nebo v rámci časového rozsahu
- Obnovení čtení událostí z uložené pozice
Klíčové odkazy:
Začínáme
Aktuálně podporovaná prostředí
- LtS verze Node.js
- Nejnovější verze prohlížečů Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v našich zásadách podpory .
Požadavky
Instalace balíčku
Upřednostňovaným způsobem instalace klientské knihovny kanálu změn objektů blob služby Azure Storage pro JavaScript je použití správce balíčků npm. Do okna terminálu zadejte následující:
npm install @azure/storage-blob-changefeed
Ověření klienta
Tato knihovna používá k inicializaci ověřený objekt BlobServiceClient
. Postup ověření objektu najdete v BlobServiceClient
tématu storage-blob.
Kompatibilita
Prozatím je tato knihovna kompatibilní pouze s Node.js.
Klíčové koncepty
Kanál změn se ukládá jako objekty blob ve speciálním kontejneru ve vašem účtu úložiště za standardní ceny objektů blob. Dobu uchovávání těchto souborů můžete řídit podle svých požadavků. Události změn se připojují k kanálu změn jako záznamy ve specifikaci formátu Apache Avro: kompaktní, rychlý, binární formát, který poskytuje bohaté datové struktury s vloženým schématem. Tento formát se často používá v ekosystému Hadoop, Stream Analytics a Azure Data Factory.
Tato knihovna nabízí klienta, pomocí které můžete načíst události změn.
Příklady
- Inicializace klienta kanálu změn
- Čtení všech událostí v kanálu změn
- Obnovení událostí čtení pomocí příkazu continuationToken
- Čtení událostí v časovém rozsahu
Inicializace klienta kanálu změn
Vyžaduje BlobChangeFeedClient
téměř stejné parametry jako BlobServiceClient
pro inicializaci. Postup vytvoření klienta služby blob najdete v tématu storage-blob . Tady je příklad použití 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
);
Čtení všech událostí v kanálu změn
Slouží BlobChangeFeedClient.listChanges()
k získání iterátorů k iteraci událostí změn.
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
Podle stránky.
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);
}
}
Obnovení událostí čtení pomocí příkazu 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);
}
}
Čtení událostí v časovém rozsahu
Předání počátečního a koncového času do, BlobChangeFeedClient.listChanges()
aby se události načítá v rámci časového rozsahu.
Všimněte si, že v současné době klient kanálu změn zaokrouhlí počáteční čas dolů na nejbližší hodinu a koncový čas zaokrouhluje na další hodinu.
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);
}
Řešení potíží
Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL
prostředí na info
. Případně je možné protokolování povolit za běhu voláním setLogLevel
v :@azure/logger
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Další kroky
Další ukázky kódu:
- Ukázky kanálu změn služby Blob Storage (JavaScript)
- Ukázky kanálu změn služby Blob Storage (TypeScript)
- Testovací případy kanálu změn služby Blob Storage
Přispívání
Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.
Další informace o nastavení testovacího prostředí pro knihovny úložiště najdete také v příručce pro konkrétní úložiště.
Azure SDK for JavaScript