Biblioteca cliente de fuente de cambios de Blob de Azure Storage para JavaScript: versión 12.0.0-preview.4
Versión del servidor: 2019-12-12 o posterior.
La fuente de cambios proporciona un registro de transacciones ordenado, garantizado, duradero, inmutable y de solo lectura de todos los cambios que se producen en los blobs y los metadatos de blob de la cuenta de almacenamiento. Las aplicaciones cliente pueden leer estos registros en cualquier momento. La fuente de cambios le permite compilar soluciones eficaces y escalables que procesan los eventos de cambio que se producen en su cuenta de Blob Storage a un bajo costo.
Este proyecto proporciona una biblioteca cliente en JavaScript que facilita el consumo de la fuente de cambios.
Use las bibliotecas cliente de este paquete para:
- Leer eventos de fuente de cambios, todos o dentro de un intervalo de tiempo
- Reanudación de eventos de lectura desde una posición guardada
Vínculos principales:
Introducción
Entornos admitidos actualmente
- Versiones de LTS de Node.js
- Versiones más recientes de Safari, Chrome, Edge y Firefox.
Para más información, consulte la directiva de compatibilidad.
Requisitos previos
Instalar el paquete
La manera preferida de instalar la biblioteca cliente de fuente de cambios de blobs de Azure Storage para JavaScript es usar el administrador de paquetes npm. Escriba lo siguiente en una ventana de terminal:
npm install @azure/storage-blob-changefeed
Autenticar el cliente
Esta biblioteca usa un autenticado BlobServiceClient
para inicializar. Consulte storage-blob para obtener información sobre cómo autenticar un BlobServiceClient
.
Compatibilidad
Por ahora, esta biblioteca solo es compatible con Node.js.
Conceptos clave
La fuente de cambios se almacena como blobs en un contenedor especial de la cuenta de almacenamiento al costo de los precios de los blobs estándar. Puede controlar el período de retención de estos archivos en función de sus requisitos. Los eventos de cambio se anexan a la fuente de cambios como registros en la especificación de formato de Apache Avro: un formato compacto, rápido y binario que proporciona estructuras de datos enriquecidos con el esquema en línea. Este formato se usa ampliamente en el ecosistema de Hadoop, en Stream Analytics y en Azure Data Factory.
Esta biblioteca ofrece un cliente que puede usar para capturar los eventos de cambio.
Ejemplos
- Inicialización del cliente de fuente de cambios
- Lectura de todos los eventos en la fuente de cambios
- Reanudación de eventos de lectura con un continuationToken
- Lectura de eventos dentro de un intervalo de tiempo
Inicialización del cliente de fuente de cambios
requiere BlobChangeFeedClient
casi los mismos parámetros que BlobServiceClient
para inicializar. Consulte storage-blob para obtener información sobre cómo crear el cliente de Blob Service. Este es un ejemplo que usa el operador 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
);
Lectura de todos los eventos en la fuente de cambios
Use BlobChangeFeedClient.listChanges()
para obtener iteradores para recorrer en iteración los eventos de cambio.
const { BlobChangeFeedEvent } = require("@azure/storage-blob-changefeed");
let changeFeedEvents = [];
for await (const event of changeFeedClient.listChanges()) {
changeFeedEvents.push(event);
}
Por página.
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);
}
}
Reanudación de eventos de lectura con un 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);
}
}
Lectura de eventos dentro de un intervalo de tiempo
Pase la hora de inicio y la hora de finalización para BlobChangeFeedClient.listChanges()
capturar eventos dentro de un intervalo de tiempo.
Tenga en cuenta que, por ahora, el cliente de la fuente de cambios redondeará la hora de inicio hasta la hora más cercana y la hora de finalización hasta la hora siguiente.
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);
}
Solución de problemas
La habilitación del registro puede ayudar a descubrir información útil sobre los errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL
en info
. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel
en @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Pasos siguientes
Más ejemplos de código:
- Ejemplos de fuente de cambios de Blob Storage (JavaScript)
- Ejemplos de fuente de cambios de Blob Storage (TypeScript)
- Casos de prueba de fuente de cambios de Blob Storage
Contribuciones
Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.
Consulte también la guía específica del almacenamiento para obtener información adicional sobre cómo configurar el entorno de prueba para las bibliotecas de almacenamiento.
Azure SDK for JavaScript