QLDBControlador de Amazon para Node.js - Base de datos Amazon Quantum Ledger (AmazonQLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

QLDBControlador de Amazon para Node.js

importante

Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre.

Para trabajar con los datos de tu libro mayor, puedes conectarte a Amazon QLDB desde tu aplicación Node.js mediante un controlador AWS proporcionado. En los temas siguientes se describe cómo empezar a utilizar el QLDB controlador de Node.js.

Recursos de controladores

Para obtener más información sobre las funcionalidades compatibles con el controlador Node.js, consulte los siguientes recursos:

Requisitos previos

Antes de empezar a utilizar el QLDB controlador de Node.js, debe hacer lo siguiente:

  1. Siga las instrucciones de AWS configuración que se indican enAcceder a Amazon QLDB. Esta incluye lo siguiente:

    1. Inscríbase en AWS.

    2. Cree un usuario con los QLDB permisos adecuados.

    3. Conceda acceso programático de desarrollo.

  2. Instalar la versión 14.x o posterior de Node.js que encontrará en el sitio de descargas de Node.js. (Las versiones anteriores del controlador son compatibles con la versión 10.x o posterior de Node.js).

  3. Configure su entorno de desarrollo AWS SDKpara el formulario JavaScript de Node.js:

    1. Configure sus AWS credenciales. Recomendamos crear un archivo de credenciales compartidas.

      Para ver las instrucciones, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas en la Guía para desarrolladores de AWS SDK for JavaScript .

    2. Defina su Región de AWS predeterminada. Para aprender cómo, consulte Configuración de Región de AWS.

      Para obtener una lista completa de las regiones disponibles, consulta los QLDBpuntos de conexión y las cuotas de Amazon en. Referencia general de AWS

A continuación, puede descargar la aplicación de ejemplo completa del tutorial, o bien instalar solo el controlador en un proyecto de Node.js y ejecutar ejemplos de códigos cortos.

  • Para instalar el QLDB controlador y el AWS SDK formulario JavaScript en Node.js en un proyecto existente, vaya aInstalación.

  • Para configurar un proyecto y ejecutar ejemplos de códigos cortos que muestren las transacciones de datos básicas en un libro mayor, consulte Tutorial de inicio rápido.

  • Para ver ejemplos más detallados de API operaciones de datos y administración en la aplicación de ejemplo completa del tutorial, consulte laTutorial de Node.js.

Instalación

QLDBadmite las siguientes versiones de controladores y sus dependencias de Node.js.

Versión de controlador Node.js version Status Fecha de lanzamiento más reciente
1.x 10.x o posterior Lanzamiento de producción 5 de junio de 2020
2.x 10.x o posterior Lanzamiento de producción 6 de mayo de 2021
3.x 14.x o posterior Lanzamiento de producción 10 de noviembre de 2023

Para instalar el QLDB controlador mediante npm (el administrador de paquetes de Node.js), introduzca el siguiente comando desde el directorio raíz del proyecto.

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

El controlador tiene las siguientes dependencias de pares en los siguientes paquetes. También debe instalar estos paquetes como dependencias en su proyecto.

3.x

QLDBCliente agregado modular (administraciónAPI)

npm install @aws-sdk/client-qldb

Cliente modular de QLDBsesiones agregadas (datosAPI)

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

Formato de datos Amazon Ion

npm install ion-js

JavaScript Implementación pura de BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Formato de datos Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementación pura de BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Formato de datos Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementación pura de BigInt

npm install jsbi@3.1.1

Uso del controlador para conectar a un libro mayor

A continuación, puede importar el controlador y usarlo para conectar a un libro mayor. En el siguiente ejemplo de TypeScript código se muestra cómo crear una instancia de controlador para un nombre de libro mayor específico y Región de 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 ver ejemplos de códigos cortos sobre cómo ejecutar transacciones de datos básicos en un libro mayor, consulte Referencia de libro de recetas.

Recomendaciones de configuración

Reutilización de conexiones con keep-alive

El HTTPS agente Node.jsHTTP/predeterminado crea una nueva TCP conexión para cada nueva solicitud. Para evitar el coste de establecer una nueva conexión, la AWS SDK for JavaScript versión 3 reutiliza TCP las conexiones de forma predeterminada. Para obtener más información y aprender a deshabilitar la reutilización de conexiones, consulte Reutilizar conexiones con keep-alive en Node.js en la Guía para desarrolladores de AWS SDK for JavaScript .

Se recomienda utilizar la configuración predeterminada para volver a utilizar las conexiones del QLDB controlador de Node.js. Durante la inicialización del controlador, maxSockets defina la HTTP opción de cliente de bajo nivel en el mismo valor que estableció. maxConcurrentTransactions

Por ejemplo, consulte lo siguiente JavaScript o TypeScript el código.

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

El HTTPS agente Node.jsHTTP/predeterminado crea una nueva TCP conexión para cada nueva solicitud. Para evitar el costo que supone establecer una nueva conexión, recomendamos reutilizar una conexión existente.

Para volver a utilizar las conexiones del QLDB controlador de Node.js, utilice una de las siguientes opciones:

  • Durante la inicialización del controlador, configure las siguientes opciones de cliente HTTP de bajo nivel:

    • keepAlivetrue

    • maxSockets: el mismo valor que estableció para maxConcurrentTransactions

    Por ejemplo, consulte lo siguiente JavaScript o TypeScript el código.

    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);
  • Otra opción consiste en establecer la variable del entorno AWS_NODEJS_CONNECTION_REUSE_ENABLED en 1. Para obtener más información, consulte Reutilización de conexiones con KeepAlive en Node.js en la Guía para desarrolladores de AWS SDK for JavaScript .

    nota

    Si define esta variable de entorno, afectará a todos los Servicios de AWS que usen AWS SDK for JavaScript.