Dela via


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

Mer information finns i vår supportpolicy .

Förutsättningar

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

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:

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 .

Visningar