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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Driver Amazon QLDB per Node.js

Importante

Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto, il 31/07/2025. Per ulteriori dettagli, consulta Migrare un registro Amazon QLDB su Amazon Aurora PostgreSQL.

Per utilizzare i dati nel registro, puoi connetterti ad Amazon QLDB dall'applicazione Node.js utilizzando un driver fornito. AWS Negli argomenti seguenti viene descritto come iniziare a utilizzare il driver QLDB per Node.js.

Risorse per i driver

Per ulteriori informazioni sulle funzionalità supportate dal driver Node.js, consultate le seguenti risorse:

Prerequisiti

Prima di iniziare a utilizzare il driver QLDB per Node.js, è necessario effettuare le seguenti operazioni:

  1. Segui le istruzioni di AWS configurazione riportate in. Accesso ad Amazon QLDB Questo include gli output seguenti:

    1. Iscriviti a AWS.

    2. Crea un utente con le autorizzazioni QLDB appropriate.

    3. Concedi l'accesso programmatico per lo sviluppo.

  2. Installa Node.js versione 14.x o successiva dal sito di download Node.js. (Le versioni precedenti del driver supportano la versione 10.x o successiva di Node.js).

  3. Configura il tuo ambiente di sviluppo per l'AWS SDK per Node.js JavaScript :

    1. Configura le tue AWS credenziali. Ti consigliamo di creare un file di credenziali condiviso.

      Per istruzioni, consulta Caricamento delle credenziali in Node.js dal file delle credenziali condivise nella Guida per gli AWS SDK for JavaScript sviluppatori.

    2. Imposta il tuo valore predefinito. Regione AWS Per sapere come, vedi Impostazione di Regione AWS.

      Per un elenco completo delle regioni disponibili, consulta gli endpoint e le quote di Amazon QLDB nel. Riferimenti generali di AWS

Successivamente, puoi scaricare l'applicazione di esempio completa del tutorial oppure puoi installare solo il driver in un progetto Node.js ed eseguire brevi esempi di codice.

  • Per installare il driver QLDB e AWS l'SDK JavaScript per Node.js in un progetto esistente, procedi a. Installazione

  • Per configurare un progetto ed eseguire brevi esempi di codice che illustrano le transazioni di dati di base su un registro, consulta la. Tutorial di avvio rapido

  • Per eseguire esempi più approfonditi delle operazioni delle API relative ai dati e alla gestione nell'applicazione di esempio completa del tutorial, consulta il. Tutorial su Node.js

Installazione

QLDB supporta le seguenti versioni dei driver e le relative dipendenze da Node.js.

Versione driver Node.js version (Versione Node.js) Stato Data di rilascio più recente
1.x 10.x o versione successiva Versione di produzione 5 giugno 2020
2.x 10.x o versione successiva Versione di produzione 6 maggio 2021
3.x 14.x o versione successiva Versione di produzione 10 novembre 2023

Per installare il driver QLDB usando npm (il gestore di pacchetti Node.js), inserisci il seguente comando dalla directory principale del tuo progetto.

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

Il driver ha dipendenze peer-to-peer dai seguenti pacchetti. È inoltre necessario installare questi pacchetti come dipendenze nel progetto.

3.x

Client QLDB aggregato modulare (API di gestione)

npm install @aws-sdk/client-qldb

Client di sessione QLDB aggregato modulare (API dati)

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

Formato dati Amazon Ion

npm install ion-js

JavaScript Implementazione pura di BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Formato dati Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementazione pura di BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Formato dati Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementazione pura di BigInt

npm install jsbi@3.1.1

Utilizzo del driver per connettersi a un registro

Quindi puoi importare il driver e usarlo per connetterti a un libro mastro. Il seguente esempio di TypeScript codice mostra come creare un'istanza di driver per un nome di registro specificato e. Regione 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); });

Per brevi esempi di codice su come eseguire transazioni di dati di base su un registro, vedere. Riferimento al libro di cucina

Consigli di configurazione

Riutilizzo delle connessioni con keep-alive

L'agente HTTP/HTTPS Node.js predefinito crea una nuova connessione TCP per ogni nuova richiesta. Per evitare il costo di stabilire una nuova connessione, la versione AWS SDK for JavaScript v3 riutilizza le connessioni TCP per impostazione predefinita. Per ulteriori informazioni e per scoprire come disabilitare il riutilizzo delle connessioni, consulta Riutilizzo delle connessioni con keep-alive in Node.js nella Guida per gli sviluppatori.AWS SDK for JavaScript

Si consiglia di utilizzare l'impostazione predefinita per riutilizzare le connessioni nel driver QLDB per Node.js. Durante l'inizializzazione del driver, imposta l'opzione HTTP del client di basso livello sullo stesso valore maxSockets per cui hai impostato. maxConcurrentTransactions

Ad esempio, vedete quanto segue JavaScript o TypeScript codice.

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

L'agente HTTP/HTTPS Node.js predefinito crea una nuova connessione TCP per ogni nuova richiesta. Per evitare il costo di stabilire una nuova connessione, si consiglia di riutilizzare una connessione esistente.

Per riutilizzare le connessioni nel driver QLDB per Node.js, utilizzare una delle seguenti opzioni:

  • Durante l'inizializzazione del driver, imposta le seguenti opzioni HTTP del client di basso livello:

    • keepAlivetrue

    • maxSockets— Lo stesso valore che hai impostato per maxConcurrentTransactions

    Ad esempio, vedere quanto segue JavaScript o TypeScript codice.

    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);
  • In alternativa, è possibile impostare la variabile di AWS_NODEJS_CONNECTION_REUSE_ENABLED ambiente su1. Per ulteriori informazioni, consulta Riutilizzo delle connessioni con Keep-Alive in Node.js nella Guida per gli AWS SDK for JavaScript sviluppatori.

    Nota

    Se imposti questa variabile di ambiente, influirà su tutti quelli Servizi AWS che utilizzano il. AWS SDK for JavaScript