Partager via


Bibliothèque cliente de flux de modification d’objet blob stockage Azure pour JavaScript - version 12.0.0-preview.4

Version du serveur : 2019-12-12 ou version ultérieure.

Le flux de modification fournit un journal des transactions ordonné, garanti, durable, immuable et en lecture seule de toutes les modifications apportées aux objets blob et aux métadonnées d’objet blob dans votre compte de stockage. Les applications clientes peuvent lire ces journaux à tout moment. Le flux de modification vous permet de créer des solutions efficaces et évolutives qui traitent les événements de modification qui se produisent dans votre compte Stockage Blob à moindre coût.

Ce projet fournit une bibliothèque cliente en JavaScript qui facilite l’utilisation du flux de modification.

Utilisez les bibliothèques clientes de ce package pour :

  • Lecture des événements de flux de modification, tout ou dans un intervalle de temps
  • Reprise de la lecture des événements à partir d’une position enregistrée

Liens clés :

Prise en main

Environnements actuellement pris en charge

Pour plus d’informations, consultez notre politique de support .

Prérequis

Installer le package

La meilleure façon d’installer la bibliothèque cliente de flux de modification d’objets blob stockage Azure pour JavaScript consiste à utiliser le gestionnaire de package npm. Tapez ce qui suit dans une fenêtre de terminal :

npm install @azure/storage-blob-changefeed

Authentifier le client

Cette bibliothèque utilise un authentifié BlobServiceClient pour l’initialiser. Reportez-vous à storage-blob pour savoir comment authentifier un BlobServiceClient.

Compatibilité

Pour l’instant, cette bibliothèque n’est compatible qu’avec Node.js.

Concepts clés

Le flux de modification est stocké en tant que blobs dans un conteneur spécial dans votre compte de stockage au tarif standard des objets blob. Vous pouvez contrôler la période de rétention de ces fichiers en fonction de vos besoins. Les événements de modification sont ajoutés au flux de modification sous forme d’enregistrements dans la spécification de format Apache Avro : un format binaire, compact et rapide qui fournit des structures de données enrichies avec un schéma inlined. Ce format est largement utilisé dans l’écosystème Hadoop, Stream Analytics et Azure Data Factory.

Cette bibliothèque offre un client que vous pouvez utiliser pour extraire les événements de modification.

Exemples

Initialiser le client de flux de modification

Nécessite BlobChangeFeedClient presque les mêmes paramètres que BlobServiceClient pour l’initialisation. Reportez-vous à storage-blob pour savoir comment créer le client de service blob. Voici un exemple d’utilisation de l’opérateur 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
);

Lecture de tous les événements dans le flux de modification

Utilisez BlobChangeFeedClient.listChanges() pour obtenir des itérateurs pour itérer au sein des événements de modification.

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

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

Par page.

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

Reprise de la lecture des événements avec un 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);
  }
}

Lecture d’événements dans un intervalle de temps

Passez l’heure de début et l’heure de fin à BlobChangeFeedClient.listChanges() pour extraire les événements dans un intervalle de temps.

Notez que pour l’instant, le client de flux de modification arrondit l’heure de début à l’heure la plus proche et l’heure de fin jusqu’à l’heure suivante.

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

Dépannage

L’activation de la journalisation peut vous aider à mieux comprendre les échecs. Pour avoir un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans @azure/logger :

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

setLogLevel("info");

Étapes suivantes

Autres exemples de code :

Contribution

Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.

Reportez-vous également au guide spécifique au stockage pour plus d’informations sur la configuration de l’environnement de test pour les bibliothèques de stockage.

Impressions