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
- Versions LTS de Node.js
- Dernières versions de Safari, Chrome, Edge et Firefox.
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
- Lecture de tous les événements dans le flux de modification
- Reprise de la lecture des événements avec un continuationToken
- Lecture d’événements dans un intervalle de temps
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 :
- Exemples de flux de modification du stockage Blob (JavaScript)
- Exemples de flux de modification du stockage Blob (TypeScript)
- Cas de test du flux de modification du stockage Blob
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.
Azure SDK for JavaScript