Megosztás a következőn keresztül:


Azure Storage Blob Change Feed ügyféloldali kódtár JavaScripthez – 12.0.0-preview.4-es verzió

Kiszolgáló verziója: 2019-12-12 vagy újabb.

A változáscsatorna rendezett, garantált, tartós, nem módosítható, írásvédett tranzakciónaplót biztosít a tárfiók blobjainak és blob-metaadatainak változásairól. Az ügyfélalkalmazások bármikor olvashatják ezeket a naplókat. A változáscsatorna segítségével hatékony és méretezhető megoldásokat hozhat létre, amelyek alacsony költséggel dolgozzák fel a Blob Storage-fiókban bekövetkező változáseseményeket.

Ez a projekt egy JavaScript-ügyfélkódtárat biztosít, amely megkönnyíti a változáscsatorna használatát.

A csomagban található ügyfélkódtárak segítségével:

  • Változáscsatorna-események olvasása egy időtartományon belül vagy egészben
  • Események olvasásának folytatása mentett helyről

Főbb hivatkozások:

Első lépések

Jelenleg támogatott környezetek

További részletekért tekintse meg támogatási szabályzatunkat .

Előfeltételek

A csomag telepítése

A JavaScripthez készült Azure Storage Blob Change Feed ügyféloldali kódtár telepítésének elsődleges módja az npm-csomagkezelő használata. Írja be a következőt egy terminálablakba:

npm install @azure/storage-blob-changefeed

Az ügyfél hitelesítése

Ez a kódtár hitelesített inicializálást BlobServiceClient használ. A hitelesítést a storage-blobban találhatja meg BlobServiceClient.

Kompatibilitás

Ez a kódtár egyelőre csak a Node.js kompatibilis.

Fő fogalmak

A változáscsatorna blobokként lesz tárolva a tárfiók egy speciális tárolójában a standard blob díjszabási költségén. A fájlok megőrzési időtartamát a követelmények alapján szabályozhatja. A változási eseményeket a rendszer rekordként fűzi hozzá a változáscsatornához az Apache Avro formátum specifikációjában: egy kompakt, gyors bináris formátum, amely részletes adatstruktúrákat és beágyazott sémát biztosít. Ezt a formátumot széles körben használják a Hadoop-ökoszisztémában, a Stream Analyticsben és a Azure Data Factory.

Ez a kódtár kínál egy ügyfelet, a segítségével lekérheti a módosítási eseményeket.

Példák

A változáscsatorna-ügyfél inicializálása

A BlobChangeFeedClient szinte ugyanazokat a paramétereket igényli, mint BlobServiceClient az inicializáláshoz. A blobszolgáltatás-ügyfél létrehozásához tekintse meg a storage-blob című témakört. Íme egy példa a használatával 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
);

A változáscsatorna összes eseményének olvasása

A használatával BlobChangeFeedClient.listChanges() iterátorokat kérhet le a változásesemények iterálására.

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

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

Oldal szerint.

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

Események olvasásának folytatása folytatássalToken

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

Események olvasása egy időtartományon belül

Adja át a kezdési és a befejezési időt az BlobChangeFeedClient.listChanges() események időtartományon belüli beolvasásához.

Vegye figyelembe, hogy a változáscsatorna-ügyfél egyelőre a kezdési időpontot a legközelebbi órára, a befejezési időt pedig a következő órára kerekíti.

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

Hibaelhárítás

A naplózás engedélyezése hasznos információkat deríthet fel a hibákról. A HTTP-kérések és -válaszok naplójának megtekintéséhez állítsa a környezeti változót értékre AZURE_LOG_LEVELinfo. A naplózás futásidőben is engedélyezhető a következő hívásával setLogLevel@azure/logger:

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

setLogLevel("info");

Következő lépések

További kódminták:

Közreműködés

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód buildeléséhez és teszteléséhez.

A tárolókódtárak tesztkörnyezetének beállításával kapcsolatos további információkért tekintse meg a Storage-specifikus útmutatót is.

Megjelenések