Azure Storage Blob Change Feed-klientbibliotek för JavaScript – version 12.0.0-preview.4
Serverversion: 2019-12-12 eller senare.
Ändringsflödet innehåller en ordnad, garanterad, beständig, oföränderlig, skrivskyddad transaktionslogg för alla ändringar som sker i blobar och blobmetadata i ditt lagringskonto. Klientprogram kan när som helst läsa loggarna. Med ändringsflödet kan du skapa effektiva och skalbara lösningar som bearbetar ändringshändelser som inträffar i ditt Blob Storage-konto till en låg kostnad.
Det här projektet tillhandahåller ett klientbibliotek i JavaScript som gör det enkelt att använda ändringsflödet.
Använd klientbiblioteken i det här paketet för att:
- Läsa ändringsflödeshändelser, alla eller inom ett tidsintervall
- Återuppta läsning av händelser från en sparad position
Nyckellänkar:
Komma igång
Miljöer som stöds för närvarande
- LTS-versioner av Node.js
- De senaste versionerna av Safari, Chrome, Edge och Firefox.
Mer information finns i vår supportpolicy .
Förutsättningar
- En Azure-prenumeration
- Ett lagringskonto
Installera paketet
Det bästa sättet att installera Azure Storage Blob Change Feed-klientbiblioteket för JavaScript är att använda npm-pakethanteraren. Skriv följande i ett terminalfönster:
npm install @azure/storage-blob-changefeed
Autentisera klienten
Det här biblioteket använder en autentiserad BlobServiceClient
för att initiera. Se storage-blob för hur du autentiserar en BlobServiceClient
.
Kompatibilitet
För tillfället är det här biblioteket endast kompatibelt med Node.js.
Viktiga begrepp
Ändringsflödet lagras som blobar i en särskild container i ditt lagringskonto till standardpriskostnaden för blobar. Du kan styra kvarhållningsperioden för dessa filer baserat på dina krav. Ändringshändelser läggs till i ändringsflödet som poster i Apache Avro-formatspecifikationen: ett kompakt, snabbt binärt format som ger omfattande datastrukturer med infogat schema. Det här formatet används ofta i Hadoop-ekosystemet, Stream Analytics och Azure Data Factory.
Det här biblioteket erbjuder en klient som du kan använda för att hämta ändringshändelserna.
Exempel
- Initiera ändringsflödesklienten
- Läsa alla händelser i ändringsflödet
- Återuppta läsning av händelser med en continuationToken
- Läsa händelser inom ett tidsintervall
Initiera ändringsflödesklienten
BlobChangeFeedClient
kräver nästan samma parametrar som BlobServiceClient
för att initiera. Information om hur du skapar blobtjänstklienten finns i storage-blob . Här är ett exempel med .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
);
Läsa alla händelser i ändringsflödet
Använd BlobChangeFeedClient.listChanges()
för att få iteratorer att iterera genom ändringshändelserna.
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
Efter sida.
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);
}
}
Återuppta läsning av händelser med en 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);
}
}
Läsa händelser inom ett tidsintervall
Skicka starttid och sluttid till för att BlobChangeFeedClient.listChanges()
hämta händelser inom ett tidsintervall.
Observera att för tillfället avrundar ändringsflödesklienten starttiden ned till närmaste timme och avrundad sluttid upp till nästa timme.
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);
}
Felsökning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg över HTTP-begäranden och svar anger du AZURE_LOG_LEVEL
miljövariabeln till info
. Loggning kan också aktiveras vid körning genom att anropa setLogLevel
i @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Nästa steg
Fler kodexempel:
- Exempel på ändringsflöde för Blob Storage (JavaScript)
- Exempel på ändringsflöde för Blob Storage (TypeScript)
- Testfall för Blob Storage-ändringsflöde
Bidra
Om du vill bidra till det här biblioteket kan du läsa bidragsguiden om du vill veta mer om hur du skapar och testar koden.
Mer information om hur du konfigurerar testmiljön för lagringsbibliotek finns i guiden Lagringsspecifik .
Azure SDK for JavaScript