Biblioteka klienta zestawienia zmian obiektów blob usługi Azure Storage dla języka JavaScript — wersja 12.0.0-preview.4
Wersja serwera: 2019-12-12 lub nowsza.
Zestawienie zmian zawiera uporządkowany, gwarantowany, trwały, niezmienny, niezmienialny dziennik transakcji tylko do odczytu zawierający wszystkie zmiany występujące w obiektach blob i metadanych obiektów blob na koncie magazynu. Aplikacje klienckie mogą odczytywać te dzienniki w dowolnym momencie. Kanał informacyjny zmian umożliwia tworzenie wydajnych i skalowalnych rozwiązań, które przetwarzają zdarzenia zmian występujące na koncie usługi Blob Storage przy niskich kosztach.
Ten projekt udostępnia bibliotekę klienta w języku JavaScript, która ułatwia korzystanie z zestawienia zmian.
Użyj bibliotek klienckich w tym pakiecie, aby:
- Odczytywanie zdarzeń zestawienia zmian, wszystkich lub w zakresie czasu
- Wznawianie odczytywania zdarzeń z zapisanej pozycji
Linki kluczowe:
Wprowadzenie
Obecnie obsługiwane środowiska
- Wersje LTS Node.js
- Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.
Aby uzyskać więcej informacji, zobacz nasze zasady pomocy technicznej .
Wymagania wstępne
Instalowanie pakietu
Preferowanym sposobem instalowania biblioteki klienta zestawienia zmian obiektów blob usługi Azure Storage dla języka JavaScript jest użycie menedżera pakietów npm. Wpisz następujące polecenie w oknie terminalu:
npm install @azure/storage-blob-changefeed
Uwierzytelnianie klienta
Ta biblioteka używa uwierzytelnionego BlobServiceClient
do inicjowania. Zapoznaj się z tematem storage-blob , aby dowiedzieć się, jak uwierzytelnić obiekt BlobServiceClient
.
Zgodność
Na razie ta biblioteka jest zgodna tylko z Node.js.
Kluczowe pojęcia
Zestawienie zmian jest przechowywane jako obiekty blob w specjalnym kontenerze na koncie magazynu przy standardowym koszcie cen obiektów blob. Okres przechowywania tych plików można kontrolować zgodnie z wymaganiami. Zdarzenia zmian są dołączane do zestawienia zmian jako rekordy w specyfikacji formatu Apache Avro: kompaktowy, szybki format binarny, który zapewnia rozbudowane struktury danych ze schematem wbudowanym. Ten format jest powszechnie używany w ekosystemie hadoop, usłudze Stream Analytics i Azure Data Factory.
Ta biblioteka oferuje klienta, którego można użyć do pobierania zdarzeń zmiany.
Przykłady
- Inicjowanie klienta zestawienia zmian
- Odczytywanie wszystkich zdarzeń w kanale zmian
- Wznawianie odczytywania zdarzeń przy użyciu tokenu kontynuacji
- Odczytywanie zdarzeń w zakresie czasu
Inicjowanie klienta zestawienia zmian
Parametr BlobChangeFeedClient
wymaga prawie tych samych parametrów co BlobServiceClient
do inicjowania. Zapoznaj się z tematem storage-blob , aby dowiedzieć się, jak utworzyć klienta usługi blob. Oto przykład użycia elementu 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
);
Odczytywanie wszystkich zdarzeń w kanale zmian
Służy BlobChangeFeedClient.listChanges()
do pobierania iteratorów w celu iteracji po zdarzeniach zmiany.
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
Według strony.
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);
}
}
Wznawianie odczytywania zdarzeń przy użyciu tokenu kontynuacji
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);
}
}
Odczytywanie zdarzeń w zakresie czasu
Przekaż czas rozpoczęcia i godzinę zakończenia, aby pobrać BlobChangeFeedClient.listChanges()
zdarzenia w zakresie czasu.
Należy pamiętać, że na razie klient zestawienia zmian będzie zaokrąglać czas rozpoczęcia do najbliższej godziny, a czas zakończenia rundy do następnej godziny.
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);
}
Rozwiązywanie problemów
Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną AZURE_LOG_LEVEL
środowiskową na info
. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel
polecenie w pliku @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Następne kroki
Więcej przykładów kodu:
- Przykłady zestawienia zmian usługi Blob Storage (JavaScript)
- Przykłady zestawienia zmian usługi Blob Storage (TypeScript)
- Przypadki testowe zestawienia zmian usługi Blob Storage
Współtworzenie
Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.
Zapoznaj się również z przewodnikiem dotyczącym magazynu , aby uzyskać dodatkowe informacje na temat konfigurowania środowiska testowego dla bibliotek magazynu.
Azure SDK for JavaScript