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
- LTS-versies van Node.js
- Nieuwste versies van Safari, Chrome, Edge en Firefox.
Zie ons ondersteuningsbeleid voor meer informatie.
Vereisten
- Een Azure-abonnement
- Een opslagaccount
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
- Alle gebeurtenissen in de wijzigingenfeed lezen
- Leesevenementen hervatten met een continuationToken
- Gebeurtenissen lezen binnen een tijdsbereik
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:
- Voorbeelden van wijzigingenfeeds in Blob Storage (JavaScript)
- Voorbeelden van wijzigingenfeeds in Blob Storage (TypeScript)
- Testcases voor wijzigingenfeed in Blob Storage
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.
Azure SDK for JavaScript