QLDBpilote Amazon pour Node.js - Base de données Amazon Quantum Ledger (AmazonQLDB)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

QLDBpilote Amazon pour Node.js

Important

Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez Migrer un Amazon QLDB Ledger vers Amazon Aurora SQL Postgre.

Pour utiliser les données de votre registre, vous pouvez vous connecter à Amazon QLDB depuis votre application Node.js à l'aide d'un pilote AWS fourni. Les rubriques suivantes décrivent comment démarrer avec le QLDB pilote pour Node.js.

Ressources pour les conducteurs

Pour plus d'informations sur les fonctionnalités prises en charge par le pilote Node.js, consultez les ressources suivantes :

Prérequis

Avant de commencer à utiliser le QLDB pilote pour Node.js, vous devez effectuer les opérations suivantes :

  1. Suivez les instructions AWS de configuration indiquées dansAccès à Amazon QLDB. Cela inclut les éléments suivants :

    1. Inscrivez-vous pour AWS.

    2. Créez un utilisateur doté des QLDB autorisations appropriées.

    3. Accordez un accès programmatique pour le développement.

  2. Installez Node.js version 14.x ou ultérieure à partir du site de téléchargement de Node.js. (Les versions précédentes du pilote prennent en charge la version 10.x ou ultérieure de Node.js.)

  3. Configurez votre environnement de développement pour le AWS SDKfor JavaScript dans Node.js :

    1. Configurez vos AWS informations d'identification. Nous vous recommandons de créer un fichier d'informations d'identification partagé.

      Pour obtenir des instructions, consultez la section Chargement des informations d'identification dans le fichier Node.js à partir du fichier d'informations d'identification partagé du manuel du AWS SDK for JavaScript développeur.

    2. Définissez votre valeur par défaut Région AWS. Pour savoir comment procéder, reportez-vous à la section Configuration du Région AWS.

      Pour obtenir la liste complète des régions disponibles, consultez la section QLDBPoints de terminaison et quotas Amazon dans le Références générales AWS.

Ensuite, vous pouvez télécharger l'exemple d'application complet du didacticiel, ou vous pouvez installer uniquement le pilote dans un projet Node.js et exécuter des exemples de code abrégé.

  • Pour installer le QLDB pilote et le AWS SDK for JavaScript dans le fichier Node.js dans un projet existant, passez àInstallation.

  • Pour configurer un projet et exécuter des exemples de codes abrégés illustrant les transactions de données de base sur un registre, consultez leTutoriel de démarrage rapide.

  • Pour obtenir des exemples plus approfondis d'APIopérations de gestion et de données dans l'exemple d'application complet du didacticiel, consultez leTutoriel Node.js.

Installation

QLDBprend en charge les versions de pilotes suivantes et leurs dépendances avec Node.js.

Versions du pilote Node.js version (Version de Node.js) Statut Dernière date de sortie
1. x 10.x ou version ultérieure Communiqué de production 5 juin 2020
2. x 10.x ou version ultérieure Communiqué de production 6 mai 2021
3. x 14.x ou version ultérieure Communiqué de production 10 novembre 2023

Pour installer le QLDB pilote à l'aide de npm (le gestionnaire de packages Node.js), entrez la commande suivante depuis le répertoire racine de votre projet.

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

Le pilote a des dépendances entre pairs sur les packages suivants. Vous devez également installer ces packages en tant que dépendances dans votre projet.

3.x

QLDBClient agrégé modulaire (gestionAPI)

npm install @aws-sdk/client-qldb

Client de QLDBsession agrégé modulaire (donnéesAPI)

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

Format de données Amazon Ion

npm install ion-js

JavaScript Mise en œuvre pure de BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Format de données Amazon Ion

npm install ion-js@4.0.0

JavaScript Mise en œuvre pure de BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Format de données Amazon Ion

npm install ion-js@4.0.0

JavaScript Mise en œuvre pure de BigInt

npm install jsbi@3.1.1

Utiliser le pilote pour se connecter à un registre

Vous pouvez ensuite importer le pilote et l'utiliser pour vous connecter à un registre. L'exemple de TypeScript code suivant montre comment créer une instance de pilote pour un nom de registre spécifié et Région 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); });

Pour des exemples de code abrégé expliquant comment exécuter des transactions de données de base sur un registre, consultez leRéférence de livre de cuisine.

Recommandations de configuration

Réutilisation des connexions avec keep-alive

L'HTTPSagent Node.jsHTTP/par défaut crée une nouvelle TCP connexion pour chaque nouvelle demande. Pour éviter les coûts liés à l'établissement d'une nouvelle connexion, la AWS SDK for JavaScript v3 réutilise les TCP connexions par défaut. Pour plus d'informations et pour savoir comment désactiver la réutilisation des connexions, consultez la section Réutilisation des connexions avec keep-alive dans le fichier Node.js du manuel du développeur.AWS SDK for JavaScript

Nous vous recommandons d'utiliser le paramètre par défaut pour réutiliser les connexions dans le QLDB pilote pour Node.js. Lors de l'initialisation du pilote, définissez l'HTTPoption client de bas niveau maxSockets sur la même valeur que celle que vous avez définie. maxConcurrentTransactions

Par exemple, reportez-vous au TypeScript code suivant JavaScript .

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'HTTPSagent Node.jsHTTP/par défaut crée une nouvelle TCP connexion pour chaque nouvelle demande. Pour éviter les coûts liés à l'établissement d'une nouvelle connexion, nous vous recommandons de réutiliser une connexion existante.

Pour réutiliser les connexions dans le QLDB pilote pour Node.js, utilisez l'une des options suivantes :

  • Lors de l'initialisation du pilote, définissez les options client HTTP de bas niveau suivantes :

    • keepAlivetrue

    • maxSockets— La même valeur que celle que vous avez définie pour maxConcurrentTransactions

    Par exemple, reportez-vous au TypeScript code suivant JavaScript .

    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);
  • Vous pouvez également définir la variable d'AWS_NODEJS_CONNECTION_REUSE_ENABLEDenvironnement sur1. Pour plus d'informations, consultez la section Réutilisation des connexions avec Keep-Alive dans Node.js dans le manuel du AWS SDK for JavaScript développeur.

    Note

    Si vous définissez cette variable d'environnement, elle affecte tous ceux Services AWS qui utilisent le AWS SDK for JavaScript.