Share via


Azure Storage Blob Change Feed-Clientbibliothek für JavaScript – Version 12.0.0-preview.4

Serverversion: 2019-12-12 oder höher.

Der Änderungsfeed bietet ein geordnetes, garantiertes, dauerhaftes, unveränderliches, schreibgeschütztes Transaktionsprotokoll aller Änderungen, die an Blobs und Blobmetadaten in Ihrem Speicherkonto auftreten. Clientanwendungen können diese Protokolle jederzeit lesen. Der Änderungsfeed ermöglicht es Ihnen, effiziente und skalierbare Lösungen zu erstellen, mit denen Änderungsereignisse, die in Ihrem Blob Storage-Konto auftreten, kostengünstig verarbeitet werden.

Dieses Projekt stellt eine Clientbibliothek in JavaScript bereit, die die Nutzung des Änderungsfeeds vereinfacht.

Verwenden Sie die Clientbibliotheken in diesem Paket für Folgendes:

  • Lesen von Änderungsfeedereignissen, alle oder innerhalb eines Zeitbereichs
  • Fortsetzen des Lesens von Ereignissen aus einer gespeicherten Position

Wichtige Links:

Erste Schritte

Die derzeitig unterstützten Umgebungen

Ausführlichere Informationen finden Sie in der Supportrichtlinie.

Voraussetzungen

Installieren des Pakets

Die bevorzugte Methode zum Installieren der Azure Storage Blob Change Feed-Clientbibliothek für JavaScript ist die Verwendung des npm-Paket-Managers. Geben Sie Folgendes in ein Terminalfenster ein:

npm install @azure/storage-blob-changefeed

Authentifizieren des Clients

Diese Bibliothek verwendet eine authentifizierte BlobServiceClient zum Initialisieren. Informationen zum Authentifizieren von BlobServiceClient.

Kompatibilität

Derzeit ist diese Bibliothek nur mit Node.js kompatibel.

Wichtige Begriffe

Der Änderungsfeed wird in Form von Blobs in einem speziellen Container Ihres Speicherkontos zu standardmäßigen Blobpreisen gespeichert. Sie können den Aufbewahrungszeitraum dieser Dateien basierend auf Ihren Anforderungen steuern. Änderungsereignisse werden in der Apache Avro-Formatspezifikation als Datensätze an den Änderungsfeed angehängt. Dies ist ein kompaktes, schnelles Binärformat, das umfangreiche Datenstrukturen mit Inlineschemas bereitstellt. Dieses Format wird häufig im Hadoop-Ökosystem, von Stream Analytics und von Azure Data Factory verwendet.

Diese Bibliothek bietet einen Client, den Sie zum Abrufen der Änderungsereignisse verwenden können.

Beispiele

Initialisieren des Änderungsfeedclients

Die BlobChangeFeedClient erfordert fast die gleichen Parameter wie BlobServiceClient zum Initialisieren. Informationen zum Erstellen des Blobdienstclients finden Sie unter storage-blob . Hier ist ein Beispiel für die Verwendung von 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
);

Lesen aller Ereignisse im Änderungsfeed

Verwenden Sie BlobChangeFeedClient.listChanges() , um Iteratoren zum Durchlaufen der Änderungsereignisse zu erhalten.

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

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

Nach Seite.

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

Fortsetzen von Leseereignissen mit einer FortsetzungToken

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

Lesen von Ereignissen innerhalb eines Zeitbereichs

Übergeben Sie Start- und Endzeit an, um BlobChangeFeedClient.listChanges() Ereignisse innerhalb eines Zeitbereichs abzurufen.

Beachten Sie, dass der Änderungsfeedclient die Startzeit auf die nächste Stunde und die Endzeit bis zur nächsten Stunde herunterrundet.

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

Problembehandlung

Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL auf info fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel in @azure/logger aufrufen:

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

setLogLevel("info");

Nächste Schritte

Weitere Codebeispiele:

Mitwirken

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.

Weitere Informationen zum Einrichten der Testumgebung für Speicherbibliotheken finden Sie auch im Speicherspezifischen Leitfaden .

Aufrufe