Libreria client del feed di modifiche BLOB di Archiviazione di Azure per JavaScript - versione 12.0.0-preview.4
Versione server: 2019-12-12 o versione successiva.
Il feed di modifiche fornisce un log delle transazioni ordinato, garantito, durevole, non modificabile e di sola lettura di tutte le modifiche apportate ai BLOB e ai metadati BLOB nell'account di archiviazione. Le applicazioni client possono leggere questi log in qualsiasi momento. Il feed di modifiche consente di creare soluzioni efficienti e scalabili che elaborano gli eventi di modifica che si verificano nell'account di archiviazione BLOB a un costo basso.
Questo progetto fornisce una libreria client in JavaScript che semplifica l'utilizzo del feed di modifiche.
Usare le librerie client in questo pacchetto per:
- Lettura degli eventi del feed di modifiche, tutti o entro un intervallo di tempo
- Ripresa degli eventi di lettura da una posizione salvata
Collegamenti principali:
- Codice sorgente
- Pacchetto (npm)
- Documentazione di riferimento sulle API
- Documentazione del prodotto
- Esempi
Introduzione
Ambienti attualmente supportati
- Versioni LTS di Node.js
- Ultime versioni di Safari, Chrome, Edge e Firefox.
Per altre informazioni, vedere i criteri di supporto.
Prerequisiti
Installare il pacchetto
Il modo migliore per installare la libreria client del feed di modifiche BLOB di Archiviazione di Azure per JavaScript consiste nell'usare gestione pacchetti npm. Digitare quanto segue in una finestra del terminale:
npm install @azure/storage-blob-changefeed
Autenticare il client
Questa libreria usa un oggetto autenticato BlobServiceClient
per inizializzare. Per informazioni su come autenticare un oggetto BlobServiceClient
, vedere storage-blob (BLOB di archiviazione).
Compatibilità
Per il momento, questa libreria è compatibile solo con Node.js.
Concetti chiave
Il feed di modifiche viene archiviato come BLOB in un contenitore speciale nell'account di archiviazione al costo standard dei prezzi dei BLOB. È possibile controllare il periodo di conservazione di questi file in base alle esigenze. Gli eventi di modifica vengono aggiunti al feed di modifiche come record nella specifica di formato Apache Avro: un formato compatto, veloce e binario che fornisce strutture di dati avanzate con schema inline. Questo formato è largamente usato nell'ecosistema Hadoop, dall'analisi di flusso e da Azure Data Factory.
Questa libreria offre un client che è possibile usare per recuperare gli eventi di modifica.
Esempio
- Inizializzare il client del feed di modifiche
- Lettura di tutti gli eventi nel feed di modifiche
- Ripresa della lettura degli eventi con continuationToken
- Lettura di eventi entro un intervallo di tempo
Inizializzare il client del feed di modifiche
Richiede BlobChangeFeedClient
quasi gli stessi parametri da BlobServiceClient
inizializzare. Per informazioni su come creare il client del servizio BLOB, vedere storage-blob . Di seguito è riportato un esempio che usa 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
);
Lettura di tutti gli eventi nel feed di modifiche
Usare BlobChangeFeedClient.listChanges()
per ottenere iteratori per scorrere gli eventi di modifica.
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
Per 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);
}
}
Ripresa della lettura degli eventi con 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);
}
}
Lettura di eventi entro un intervallo di tempo
Passare l'ora di inizio e l'ora di fine a per BlobChangeFeedClient.listChanges()
recuperare gli eventi entro un intervallo di tempo.
Si noti che per il momento, il client del feed di modifiche arrotonda l'ora di inizio fino all'ora più vicina e l'ora di fine del round fino all'ora successiva.
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);
}
Risoluzione dei problemi
L'abilitazione della registrazione consente di individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL
su info
. In alternativa, la registrazione può essere abilitata in fase di esecuzione chiamando setLogLevel
in @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Passaggi successivi
Altri esempi di codice:
- Esempi di feed di modifiche dell'archiviazione BLOB (JavaScript)
- Esempi di feed di modifiche dell'archiviazione BLOB (TypeScript)
- Test case del feed di modifiche dell'archiviazione BLOB
Contributo
Per contribuire a questa libreria, leggere la guida ai contributi per altre informazioni su come compilare e testare il codice.
Per altre informazioni sulla configurazione dell'ambiente di test per le librerie di archiviazione, vedere anche Guida specifica dell'archiviazione.
Azure SDK for JavaScript