QLDBDriver da Amazon para Node.js - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

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á.

QLDBDriver da Amazon para Node.js

Importante

Aviso de fim do suporte: os clientes existentes poderão usar a 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 Postgre. SQL

Para trabalhar com dados em seu livro contábil, você pode se conectar à Amazon a QLDB partir do seu aplicativo Node.js usando um driver AWS fornecido. Os tópicos a seguir descrevem como começar a usar o QLDB driver 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 QLDB driver para Node.js, você deve fazer o seguinte:

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

    1. Inscreva-se em AWS.

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

    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 AWS SDKpara o for 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 QLDBendpoints e cotas da Amazon no. 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 QLDB driver e o AWS SDK for JavaScript no Node.js em um projeto existente, vá paraInstalaçã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 de API operações de dados e gerenciamento no aplicativo de amostra completo do tutorial, consulte o. Tutorial Node.js

Instalação

QLDBsuporta as seguintes versões do driver e suas dependências do 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 QLDB driver usando o npm (o gerenciador de pacotes do 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

QLDBCliente agregado modular (gerenciamentoAPI)

npm install @aws-sdk/client-qldb

Cliente modular de QLDBsessão agregada (dadosAPI)

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 HTTPS agente Node.jsHTTP/padrão cria uma nova TCP conexão para cada nova solicitação. Para evitar o custo de estabelecer uma nova conexão, a AWS SDK for JavaScript v3 reutiliza TCP as conexões 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 QLDB driver do Node.js. Durante a inicialização do driver, defina a HTTP opção de cliente de baixo nível maxSockets com o mesmo valor que você definiu. 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 HTTPS agente Node.jsHTTP/padrão cria uma nova TCP conexão 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 QLDB driver para Node.js, use uma das seguintes opções:

  • Durante a inicialização do driver, defina as seguintes opções de cliente HTTP 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.