Bagikan melalui


Pustaka klien Umpan Perubahan Blob Azure Storage untuk JavaScript - versi 12.0.0-preview.4

Versi Server: 2019-12-12 atau yang lebih baru.

Umpan perubahan menyediakan log transaksi yang diurutkan, dijamin, tahan lama, tidak dapat diubah, dan baca-saja dari semua perubahan yang terjadi pada metadata blob dan blob di akun penyimpanan Anda. Aplikasi klien dapat membaca log ini kapan saja. Umpan perubahan memungkinkan Anda untuk membangun solusi yang efisien dan dapat diskalakan yang memproses peristiwa perubahan yang terjadi di akun Blob Storage Anda dengan biaya rendah.

Proyek ini menyediakan pustaka klien di JavaScript yang memudahkan penggunaan umpan perubahan.

Gunakan pustaka klien dalam paket ini untuk:

  • Membaca peristiwa umpan perubahan, semua atau dalam rentang waktu
  • Melanjutkan membaca peristiwa dari posisi tersimpan

Tautan utama:

Memulai

Lingkungan yang didukung saat ini

Lihat kebijakan dukungan kami untuk detail selengkapnya.

Prasyarat

Instal paketnya

Cara yang disukai untuk menginstal pustaka klien Azure Storage Blob Change Feed untuk JavaScript adalah dengan menggunakan manajer paket npm. Ketik berikut ini ke dalam jendela terminal:

npm install @azure/storage-blob-changefeed

Mengautentikasi klien

Pustaka ini menggunakan yang diautentikasi BlobServiceClient untuk menginisialisasi. Lihat storage-blob untuk cara mengautentikasi BlobServiceClient.

Kompatibilitas

Untuk saat ini, pustaka ini hanya kompatibel dengan Node.js.

Konsep utama

Umpan perubahan disimpan sebagai blob dalam kontainer khusus di akun penyimpanan Anda dengan harga blob standar. Anda dapat mengontrol periode retensi file-file ini berdasarkan kebutuhan Anda. Peristiwa perubahan ditambahkan ke umpan perubahan sebagai rekaman dalam spesifikasi format Apache Avro: format biner ringkas dan cepat, yang menyediakan struktur data yang kaya dengan skema sebaris. Format ini banyak digunakan dalam ekosistem Hadoop, Azure Stream Analytics, dan Azure Data Factory.

Pustaka ini menawarkan klien yang dapat Anda gunakan untuk mengambil peristiwa perubahan.

Contoh

Menginisialisasi klien umpan perubahan

BlobChangeFeedClient membutuhkan parameter BlobServiceClient yang hampir sama untuk menginisialisasi. Lihat storage-blob untuk cara membuat klien blob service. Berikut contohnya menggunakan 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
);

Membaca semua peristiwa di Umpan Perubahan

Gunakan BlobChangeFeedClient.listChanges() untuk mendapatkan iterator untuk melakukan iterasi melalui peristiwa perubahan.

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

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

Menurut halaman.

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

Melanjutkan membaca peristiwa dengan 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);
  }
}

Membaca peristiwa dalam rentang waktu

Lewati waktu mulai dan waktu akhir untuk BlobChangeFeedClient.listChanges() mengambil peristiwa dalam rentang waktu.

Perhatikan bahwa untuk saat ini, klien umpan perubahan akan membulatkan waktu mulai ke bawah ke jam terdekat, dan waktu akhir putaran hingga jam berikutnya.

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

Pemecahan Masalah

Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:

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

setLogLevel("info");

Langkah berikutnya

Sampel kode lainnya:

Berkontribusi

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.

Lihat juga Panduan khusus penyimpanan untuk informasi tambahan tentang menyiapkan lingkungan pengujian untuk pustaka penyimpanan.

Tayangan