Sdílet prostřednictvím


Klientská knihovna kanálu změn objektů blob služby Azure Storage pro JavaScript – verze 12.0.0-preview.4

Verze serveru: 2019-12-12 nebo novější.

Kanál změn poskytuje uspořádaný, zaručený, trvalý, neměnný a jen pro čtení transakční protokol všech změn, ke kterým dochází v objektech blob a metadatech objektů blob ve vašem účtu úložiště. Klientské aplikace můžou tyto protokoly kdykoli číst. Kanál změn umožňuje vytvářet efektivní a škálovatelná řešení, která zpracovávají události změn, ke kterým dochází ve vašem účtu Blob Storage, za nízkou cenu.

Tento projekt poskytuje v JavaScriptu klientskou knihovnu, která usnadňuje využívání kanálu změn.

Pomocí klientských knihoven v tomto balíčku:

  • Čtení událostí kanálu změn, všech nebo v rámci časového rozsahu
  • Obnovení čtení událostí z uložené pozice

Klíčové odkazy:

Začínáme

Aktuálně podporovaná prostředí

  • LtS verze Node.js
  • Nejnovější verze prohlížečů Safari, Chrome, Edge a Firefox.

Další podrobnosti najdete v našich zásadách podpory .

Požadavky

Instalace balíčku

Upřednostňovaným způsobem instalace klientské knihovny kanálu změn objektů blob služby Azure Storage pro JavaScript je použití správce balíčků npm. Do okna terminálu zadejte následující:

npm install @azure/storage-blob-changefeed

Ověření klienta

Tato knihovna používá k inicializaci ověřený objekt BlobServiceClient . Postup ověření objektu najdete v BlobServiceClienttématu storage-blob.

Kompatibilita

Prozatím je tato knihovna kompatibilní pouze s Node.js.

Klíčové koncepty

Kanál změn se ukládá jako objekty blob ve speciálním kontejneru ve vašem účtu úložiště za standardní ceny objektů blob. Dobu uchovávání těchto souborů můžete řídit podle svých požadavků. Události změn se připojují k kanálu změn jako záznamy ve specifikaci formátu Apache Avro: kompaktní, rychlý, binární formát, který poskytuje bohaté datové struktury s vloženým schématem. Tento formát se často používá v ekosystému Hadoop, Stream Analytics a Azure Data Factory.

Tato knihovna nabízí klienta, pomocí které můžete načíst události změn.

Příklady

Inicializace klienta kanálu změn

Vyžaduje BlobChangeFeedClient téměř stejné parametry jako BlobServiceClient pro inicializaci. Postup vytvoření klienta služby blob najdete v tématu storage-blob . Tady je příklad použití 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
);

Čtení všech událostí v kanálu změn

Slouží BlobChangeFeedClient.listChanges() k získání iterátorů k iteraci událostí změn.

const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");

let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
  changeFeedEvents.push(event);
}

Podle stránky.

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);
  }
}

Obnovení událostí čtení pomocí příkazu 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);
  }
}

Čtení událostí v časovém rozsahu

Předání počátečního a koncového času do, BlobChangeFeedClient.listChanges() aby se události načítá v rámci časového rozsahu.

Všimněte si, že v současné době klient kanálu změn zaokrouhlí počáteční čas dolů na nejbližší hodinu a koncový čas zaokrouhluje na další hodinu.

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);
}

Řešení potíží

Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL prostředí na info. Případně je možné protokolování povolit za běhu voláním setLogLevel v :@azure/logger

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Další kroky

Další ukázky kódu:

Přispívání

Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.

Další informace o nastavení testovacího prostředí pro knihovny úložiště najdete také v příručce pro konkrétní úložiště.

Imprese