Driver Amazon QLDB para Node.js - Amazon Quantum Ledger Database (Amazon QLDB)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Driver Amazon QLDB para Node.js

Importante

Aviso de fim do suporte: os clientes existentes poderão usar o Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora PostgreSQL.

Para trabalhar com dados em seu livro contábil, você pode se conectar ao Amazon QLDB a partir do seu aplicativo Node.js usando um driver fornecido. AWS Os tópicos a seguir descrevem como começar a usar o driver QLDB para Node.js.

Recursos para driver

Para obter mais informações sobre a funcionalidade suportada pelo driver Node.js, consulte os recursos a seguir:

Pré-requisitos

Antes de começar a usar o driver QLDB para Node.js, você deverá fazer o seguinte:

  1. Siga as instruções AWS de configuração emAcessar o Amazon QLDB. Essa transmissão inclui o seguinte:

    1. Inscreva-se em AWS.

    2. Crie um usuário com as permissões adequadas para QLDB.

    3. Conceda acesso programático para desenvolvimento.

  2. Instale o Node.js versão 14.x ou posterior a partir do site de downloads do Node.js. (As versões anteriores do driver oferecem suporte ao Node.js versão 10.x ou posterior.)

  3. Configure seu ambiente de desenvolvimento para o AWS SDK JavaScript em Node.js:

    1. Configure suas AWS credenciais. Recomendamos criar um arquivo de credenciais compartilhadas.

      Para obter mais informações, consulte Carregamento de credenciais do arquivo de credenciais compartilhadas no Guia do desenvolvedor do AWS SDK for JavaScript .

    2. Defina sua Região da AWS padrão. Para aprender como fazer isso, consulte Definindo o Região da AWS.

      Para obter uma lista completa das regiões disponíveis, consulte endpoints e cotas Amazon QLDB em Referência geral da AWS.

Em seguida, você pode baixar o aplicativo completo de amostra do tutorial ou instalar somente o driver em um projeto Node.js e executar exemplos de códigos curtos.

  • Para instalar o driver QLDB e AWS o SDK do Node.js em um projeto existente, vá JavaScript para. Instalação

  • Para configurar um projeto e executar exemplos de códigos curtos que demonstram transações básicas de dados em um ledger, consulte o Tutorial de início rápido.

  • Para executar exemplos mais detalhados das operações da API de dados e gerenciamento no aplicativo de amostra completo do tutorial, consulte Tutorial Node.js.

Instalação

O QLDB suporta as seguintes versões do driver e suas dependências Node.js.

Versão do driver Versão do Node.js Status Data da versão mais recente
1.x 10.x ou posterior Lançamento de produção 5 de junho de 2020
2.x 10.x ou posterior Lançamento de produção 6 de maio de 2021
3.x 14.x ou posterior Lançamento de produção 10 de novembro de 2023

Para instalar o driver QLDB usando o npm (o gerenciador de pacotes Node.js), digite o comando a seguir no diretório raiz do seu projeto.

3.x
npm install amazon-qldb-driver-nodejs
2.x
npm install amazon-qldb-driver-nodejs@2.2.0
1.x
npm install amazon-qldb-driver-nodejs@1.0.0

O pacote tem dependências pares nos pacotes a seguir. Você também deve instalar esses pacotes como dependências em seu projeto.

3.x

Cliente QLDB modular agregado (API de gerenciamento)

npm install @aws-sdk/client-qldb

Cliente de QLDB Session agregado modular (API de dados)

npm install @aws-sdk/client-qldb-session

Formato de dados Amazon Ion

npm install ion-js

JavaScript Implementação pura de BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Formato de dados Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementação pura de BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Formato de dados Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementação pura de BigInt

npm install jsbi@3.1.1

Como usar o driver para se conectar a um ledger

Depois, você pode importar o driver e usá-lo para se conectar a um ledger. O exemplo de TypeScript código a seguir mostra como criar uma instância de driver para um nome de livro contábil especificado e. Região da AWS

3.x
import { Agent } from 'https'; import { QLDBSessionClientConfig } from "@aws-sdk/client-qldb-session"; import { QldbDriver, RetryConfig } from 'amazon-qldb-driver-nodejs'; import { NodeHttpHandlerOptions } from "@aws-sdk/node-http-handler"; const maxConcurrentTransactions: number = 10; const retryLimit: number = 4; //Reuse connections with keepAlive const lowLevelClientHttpOptions: NodeHttpHandlerOptions = { httpAgent: new Agent({ maxSockets: maxConcurrentTransactions }) }; const serviceConfigurationOptions: QLDBSessionClientConfig = { region: "us-east-1" }; //Use driver's default backoff function for this example (no second parameter provided to RetryConfig) const retryConfig: RetryConfig = new RetryConfig(retryLimit); const qldbDriver: QldbDriver = new QldbDriver("testLedger", serviceConfigurationOptions, lowLevelClientHttpOptions, maxConcurrentTransactions, retryConfig); qldbDriver.getTableNames().then(function(tableNames: string[]) { console.log(tableNames); });
2.x
import { Agent } from 'https'; import { QldbDriver, RetryConfig } from 'amazon-qldb-driver-nodejs'; const maxConcurrentTransactions: number = 10; const retryLimit: number = 4; //Reuse connections with keepAlive const agentForQldb: Agent = new Agent({ keepAlive: true, maxSockets: maxConcurrentTransactions }); const serviceConfigurationOptions = { region: "us-east-1", httpOptions: { agent: agentForQldb } }; //Use driver's default backoff function for this example (no second parameter provided to RetryConfig) const retryConfig: RetryConfig = new RetryConfig(retryLimit); const qldbDriver: QldbDriver = new QldbDriver("testLedger", serviceConfigurationOptions, maxConcurrentTransactions, retryConfig); qldbDriver.getTableNames().then(function(tableNames: string[]) { console.log(tableNames); });
1.x
import { Agent } from 'https'; import { QldbDriver } from 'amazon-qldb-driver-nodejs'; const poolLimit: number = 10; const retryLimit: number = 4; //Reuse connections with keepAlive const agentForQldb: Agent = new Agent({ keepAlive: true, maxSockets: poolLimit }); const serviceConfigurationOptions = { region: "us-east-1", httpOptions: { agent: agentForQldb } }; const qldbDriver: QldbDriver = new QldbDriver("testLedger", serviceConfigurationOptions, retryLimit, poolLimit); qldbDriver.getTableNames().then(function(tableNames: string[]) { console.log(tableNames); });

Para exemplos de código curto de como executar transações básicas de dados em um ledger, consulte o Referência de Cookbook.

Recomendações de configuração

Reutilizar conexões com Keep-alive

O agente Node.js HTTP/HTTPS padrão cria uma nova conexão TCP para cada nova solicitação. Para evitar o custo de estabelecer uma nova conexão, a AWS SDK for JavaScript v3 reutiliza conexões TCP por padrão. Para obter mais informações e saber como desativar a reutilização de conexões, consulte Reusing connections with keep-alive in Node.js no Guia do desenvolvedor do AWS SDK for JavaScript .

Recomendamos usar a configuração padrão para reutilizar conexões no driver QLDB para Node.js. Durante a inicialização do driver, defina a opção HTTP do cliente de baixo nível maxSockets com o mesmo valor que você definiu para maxConcurrentTransactions.

Por exemplo, consulte o TypeScript código JavaScript a seguir.

JavaScript
const qldb = require('amazon-qldb-driver-nodejs'); const https = require('https'); //Replace this value as appropriate for your application const maxConcurrentTransactions = 50; const agentForQldb = new https.Agent({ //Set this to the same value as `maxConcurrentTransactions`(previously called `poolLimit`) //Do not rely on the default value of `Infinity` "maxSockets": maxConcurrentTransactions }); const lowLevelClientHttpOptions = { httpAgent: agentForQldb } let driver = new qldb.QldbDriver("testLedger", undefined, lowLevelClientHttpOptions, maxConcurrentTransactions);
TypeScript
import { Agent } from 'https'; import { NodeHttpHandlerOptions } from "@aws-sdk/node-http-handler"; import { QldbDriver } from 'amazon-qldb-driver-nodejs'; //Replace this value as appropriate for your application const maxConcurrentTransactions: number = 50; const agentForQldb: Agent = new Agent({ //Set this to the same value as `maxConcurrentTransactions`(previously called `poolLimit`) //Do not rely on the default value of `Infinity` maxSockets: maxConcurrentTransactions }); const lowLevelClientHttpOptions: NodeHttpHandlerOptions = { httpAgent: agentForQldb }; let driver = new QldbDriver("testLedger", undefined, lowLevelClientHttpOptions, maxConcurrentTransactions);

O agente Node.js HTTP/HTTPS padrão cria uma nova conexão TCP para cada nova solicitação. Para evitar o custo de estabelecer uma nova conexão, recomendamos reutilizar uma conexão existente.

Para reutilizar conexões no driver QLDB para Node.js, use uma das seguintes opções:

  • Durante a inicialização do driver, defina as seguintes opções HTTP de cliente de baixo nível:

    • keepAlivetrue

    • maxSockets: o mesmo valor que você definiu para maxConcurrentTransactions

    Por exemplo, consulte o TypeScript código JavaScript a seguir.

    JavaScript
    const qldb = require('amazon-qldb-driver-nodejs'); const https = require('https'); //Replace this value as appropriate for your application const maxConcurrentTransactions = 50; const agentForQldb = new https.Agent({ "keepAlive": true, //Set this to the same value as `maxConcurrentTransactions`(previously called `poolLimit`) //Do not rely on the default value of `Infinity` "maxSockets": maxConcurrentTransactions }); const serviceConfiguration = { "httpOptions": { "agent": agentForQldb }}; let driver = new qldb.QldbDriver("testLedger", serviceConfiguration, maxConcurrentTransactions);
    TypeScript
    import { Agent } from 'https'; import { ClientConfiguration } from 'aws-sdk/clients/acm'; import { QldbDriver } from 'amazon-qldb-driver-nodejs'; //Replace this value as appropriate for your application const maxConcurrentTransactions: number = 50; const agentForQldb: Agent = new Agent({ keepAlive: true, //Set this to the same value as `maxConcurrentTransactions`(previously called `poolLimit`) //Do not rely on the default value of `Infinity` maxSockets: maxConcurrentTransactions }); const serviceConfiguration: ClientConfiguration = { httpOptions: { agent: agentForQldb }}; let driver = new QldbDriver("testLedger", serviceConfiguration, maxConcurrentTransactions);
  • Como alternativa, você pode definir as variáveis de ambiente AWS_NODEJS_CONNECTION_REUSE_ENABLED para 1. Para obter mais informações, consulte Reutilizar conexões com Keep-Alive em Node.js no Guia do desenvolvedor do AWS SDK for JavaScript .

    nota

    Se você definir essa variável de ambiente, ela afetará todos os Serviços da AWS que usam o AWS SDK for JavaScript.