Udostępnij za pośrednictwem


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

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

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:

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.

Wrażenia