Delen via


Azure Storage Blob-clientbibliotheek voor wijzigingenfeed voor JavaScript - versie 12.0.0-preview.4

Serverversie: 2019-12-12 of hoger.

De wijzigingenfeed biedt een geordende, gegarandeerde, duurzame, onveranderbare, alleen-lezen transactielogboek met alle wijzigingen die optreden in blobs en blobmetagegevens in uw opslagaccount. Clienttoepassingen kunnen deze logboeken op elk gewenst moment lezen. Met de wijzigingenfeed kunt u efficiënte en schaalbare oplossingen bouwen voor het verwerken van wijzigingsevenementen die plaatsvinden in uw Blob Storage-account tegen lage kosten.

Dit project biedt een clientbibliotheek in JavaScript waarmee u de wijzigingenfeed eenvoudig kunt gebruiken.

Gebruik de clientbibliotheken in dit pakket voor het volgende:

  • Wijzigingenfeed-gebeurtenissen lezen, allemaal of binnen een tijdsbereik
  • Het lezen van gebeurtenissen hervatten vanaf een opgeslagen positie

Belangrijke koppelingen:

Aan de slag

Momenteel ondersteunde omgevingen

Zie ons ondersteuningsbeleid voor meer informatie.

Vereisten

Het pakket installeren

De voorkeursmethode voor het installeren van de Azure Storage Blob Wijzigingenfeed-clientbibliotheek voor JavaScript is met behulp van npm-pakketbeheer. Typ het volgende in een terminalvenster:

npm install @azure/storage-blob-changefeed

De client verifiëren

Deze bibliotheek gebruikt een geverifieerde BlobServiceClient om te initialiseren. Raadpleeg storage-blob voor het verifiëren van een BlobServiceClient.

Compatibiliteit

Op dit moment is deze bibliotheek alleen compatibel met Node.js.

Belangrijkste concepten

De wijzigingenfeed wordt opgeslagen als blobs in een speciale container in uw opslagaccount tegen standaardkosten voor blob. U kunt de bewaarperiode van deze bestanden beheren op basis van uw vereisten. Wijzigingsgebeurtenissen worden toegevoegd aan de wijzigingenfeed als records in de Apache Avro-indelingsspecificatie: een compacte, snelle, binaire indeling die uitgebreide gegevensstructuren met een inlineschema biedt. Deze indeling wordt veel gebruikt in het Hadoop-ecosysteem, Stream Analytics en Azure Data Factory.

Deze bibliotheek biedt een client die u kunt gebruiken om de wijzigingsevenementen op te halen.

Voorbeelden

De wijzigingenfeedclient initialiseren

De BlobChangeFeedClient vereist bijna dezelfde parameters als BlobServiceClient voor initialisatie. Raadpleeg storage-blob voor het maken van de blobserviceclient. Hier volgt een voorbeeld met .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
);

Alle gebeurtenissen in de wijzigingenfeed lezen

Gebruik BlobChangeFeedClient.listChanges() om iterators de wijzigingsgebeurtenissen te laten doorlopen.

const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");

let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
  changeFeedEvents.push(event);
}

Op pagina.

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);
  }
}

Leesevenementen hervatten met een 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);
  }
}

Gebeurtenissen lezen binnen een tijdsbereik

Geef de begin- en eindtijd door aan om BlobChangeFeedClient.listChanges() gebeurtenissen binnen een tijdsbereik op te halen.

Houd er rekening mee dat de wijzigingenfeedclient voorlopig de begintijd afrondt naar het dichtstbijzijnde uur en de eindtijd afronden naar het volgende uur.

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);
}

Problemen oplossen

Het inschakelen van logboekregistratie kan helpen bij het ontdekken van nuttige informatie over fouten. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de AZURE_LOG_LEVEL omgevingsvariabele in op info. Logboekregistratie kan ook worden ingeschakeld tijdens runtime door aan te roepen setLogLevel in de @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Volgende stappen

Meer codevoorbeelden:

Bijdragen

Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de handleiding voor bijdragen voor meer informatie over het bouwen en testen van de code.

Raadpleeg ook De specifieke handleiding voor opslag voor meer informatie over het instellen van de testomgeving voor opslagbibliotheken.

Weergaven