Biblioteca de cliente do Feed de Alterações de Blobs de Armazenamento do Azure para JavaScript – versão 12.0.0-preview.4
Versão do Servidor: 2019-12-12 ou posterior.
O feed de alterações fornece um registo de transações ordenado, garantido, durável, imutável e só de leitura de todas as alterações que ocorrem em blobs e metadados de blobs na sua conta de armazenamento. As aplicações cliente podem ler estes registos em qualquer altura. O feed de alterações permite-lhe criar soluções eficientes e dimensionáveis que processam eventos de alteração que ocorrem na sua conta de Armazenamento de Blobs a baixo custo.
Este projeto fornece uma biblioteca de cliente em JavaScript que facilita a utilização do feed de alterações.
Utilize as bibliotecas de cliente neste pacote para:
- Ler eventos do feed de alterações, todos ou dentro de um intervalo de tempo
- Retomar a leitura de eventos a partir de uma posição guardada
Ligações principais:
Introdução
Ambientes atualmente suportados
- Versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Veja a nossa política de suporte para obter mais detalhes.
Pré-requisitos
Instalar o pacote
A forma preferencial de instalar a biblioteca de cliente do Feed de Alterações de Blobs de Armazenamento do Azure para JavaScript é utilizar o gestor de pacotes npm. Escreva o seguinte numa janela de terminal:
npm install @azure/storage-blob-changefeed
Autenticar o cliente
Esta biblioteca utiliza uma autenticação BlobServiceClient
para inicializar. Veja storage-blob para saber como autenticar um BlobServiceClient
.
Compatibilidade
Por enquanto, esta biblioteca só é compatível com Node.js.
Conceitos-chave
O feed de alterações é armazenado como blobs num contentor especial na sua conta de armazenamento ao custo de preços padrão do blob. Pode controlar o período de retenção destes ficheiros com base nos seus requisitos. Os eventos de alteração são anexados ao feed de alterações como registos na especificação do formato Apache Avro: um formato compacto, rápido e binário que fornece estruturas de dados avançadas com esquema inline. Este formato é amplamente utilizado no ecossistema do Hadoop, no Stream Analytics e no Azure Data Factory.
Esta biblioteca oferece um cliente que pode utilizar para obter os eventos de alteração.
Exemplos
- Inicializar o cliente do feed de alterações
- Ler todos os eventos no Feed de Alterações
- Retomar a leitura de eventos com um continuationToken
- Ler eventos dentro de um intervalo de tempo
Inicializar o cliente do feed de alterações
O BlobChangeFeedClient
requer quase os mesmos parâmetros BlobServiceClient
que inicializar. Veja storage-blob para saber como criar o cliente do serviço de blobs. Eis um exemplo a utilizar 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
);
Ler todos os eventos no Feed de Alterações
Utilize BlobChangeFeedClient.listChanges()
para obter iteradores para iterar através dos eventos de alteração.
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);
}
}
Retomar a leitura de eventos com um 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);
}
}
Ler eventos dentro de um intervalo de tempo
Passe a hora de início e a hora de fim para BlobChangeFeedClient.listChanges()
obter eventos dentro de um intervalo de tempo.
Tenha em atenção que, por agora, o cliente do feed de alterações arredondará a hora de início para a hora mais próxima e a hora de fim arredondada até à hora seguinte.
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);
}
Resolução de problemas
Ativar o registo pode ajudar a descobrir informações úteis sobre falhas. Para ver um registo de pedidos HTTP e respostas, defina a variável de AZURE_LOG_LEVEL
ambiente como info
. Em alternativa, o registo pode ser ativado no runtime ao chamar setLogLevel
no @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Passos seguintes
Mais exemplos de código:
- Exemplos do Feed de Alterações do Armazenamento de Blobs (JavaScript)
- Exemplos do Feed de Alterações do Armazenamento de Blobs (TypeScript)
- Casos de Teste do Feed de Alterações do Armazenamento de Blobs
Contribuir
Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Veja também o Guia específico do Armazenamento para obter informações adicionais sobre como configurar o ambiente de teste para bibliotecas de armazenamento.
Azure SDK for JavaScript