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

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.

Controlador de Amazon QLDB para Node.js

Para trabajar con los datos de su libro mayor, puede conectarse a Amazon QLDB desde su aplicación Node.js mediante unAWS-conductor proporcionado. En los temas siguientes se describe cómo comenzar a utilizar el controlador QLDB para Node.js.

Recursos de controladores

Para obtener más información sobre la funcionalidad admitida por el controlador Node.js, consulte los siguientes recursos:

Requisitos previos

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

  1. Siga elAWSinstrucciones de configuración enAcceso a Amazon QLDB. Estas incluyen las siguientes:

    1. Registrarse enAWS.

    2. Creación de unAWS Identity and Access Management(IAM) con los permisos QLDB adecuados.

    3. Obtenga una clave de acceso de IAM para el desarrollo.

  2. Instale Node.js versión 10.x o posterior desde elDescargas de Node.jssitio:.

  3. Configurar el entorno de desarrollo para elAWSSDK para JavaScript en Node.js:

    1. Configurar elAWSCredenciales de . Le recomendamos que cree un archivo de credenciales compartidas.

      Para obtener instrucciones, consulteCarga de credenciales en Node.js desde el archivo de credenciales compartidasen laAWS SDK for JavaScriptGuía para desarrolladores.

    2. Configurar el valor predeterminadoAWSRegión . Para obtener más información, consulteConfiguración delAWSRegión.

      Para ver una lista completa de las regiones disponibles, consulteCuotas y puntos de enlace de Amazon QLDBen laAWSReferencia general de.

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

  • Para instalar el controlador QLDB y elAWSSDK para JavaScript en Node.js en un proyecto existente, proceda aInstalación.

  • Para configurar un proyecto y ejecutar ejemplos cortos de código que demuestren transacciones de datos básicos en un libro mayor, consulte laTutorial de inicio rápido.

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

Instalación

QLDB admite las siguientes versiones de controladores y sus dependencias Node.js.

Versión de controlador Node.js version Estado Fecha de la última versión
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

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

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

La instalación del controlador también se instalaTypeScript 3.5.xcomo dependencia.

Además, el conductor tiene dependencias de pares deaws-sdk(AWS SDK for JavaScript),ion-js(formato de datos de Amazon Ion) yjsbi(implementación de JavaScript pura deBigInt). También debe instalar estos paquetes como dependencias de su proyecto.

npm install aws-sdk
npm install ion-js@4.0.0
npm install jsbi@3.1.2

Uso del controlador para conectarse a un libro mayor

A continuación, puede importar el controlador y utilizarlo para conectarse a un libro mayor. Los siguientes ejemplos de TypeScript Ejemplo de código muestra cómo crear una instancia de controlador para un nombre de libro mayor especificado yAWSRegión .

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 obtener ejemplos breves de código sobre cómo ejecutar transacciones de datos básicos en un libro mayor, consulte laReferencia del libro de recetas.

Recomendaciones de configuración

Reutilización de conexiones con Keep-Alive

De forma predeterminada, el agente HTTP/HTTPS predeterminado de Node.js crea una nueva conexión TCP para cada nueva solicitud. Para reducir la latencia y evitar el costo de establecer una nueva conexión, le recomendamos que vuelva a utilizar una conexión existente.

Para reutilizar las conexiones del controlador QLDB para Node.js, utilice una de las siguientes opciones:

  • Durante la inicialización del controlador, pase elkeepAliveymaxSocketspropiedades dehttpOptionsen laClientConfigurationparámetro. EstablezcakeepAliveatrue, ymaxSocketscon el mismo valor que ha establecido paramaxConcurrentTransactions, de la siguiente manera.

    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);
  • También puede establecer laAWS_NODEJS_CONNECTION_REUSE_ENABLEDvariable de entorno a1. Para obtener más información, consulteReutilización de conexiones con Keep-Alive en Node.jsen laAWS SDK for JavaScriptGuía para desarrolladores.

    nota

    Si establece esta variable de entorno, afecta a todos losAWSservicios que utilizan elAWS SDK for JavaScript.