Amazon QLDB-Treiber für Node.js - Amazon Quantum Ledger Database (Amazon QLDB)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon QLDB-Treiber für Node.js

Um mit Daten in Ihrem Ledger zu arbeiten, können Sie von Ihrer Anwendung Node.js aus mithilfe eines bereitgestellten Treibers eine AWS Verbindung zu Amazon QLDB herstellen. In den folgenden Themen werden die ersten Schritte mit dem QLDB-Treiber für Node.js beschrieben.

Ressourcen für Treiber

Weitere Informationen zu den vom Node.js-Treiber unterstützten Funktionen finden Sie in den folgenden Ressourcen:

Voraussetzungen

Bevor Sie mit dem QLDB-Treiber für Node.js beginnen, müssen Sie Folgendes tun:

  1. Befolgen Sie die AWS-Einrichtungsanweisungen unter Zugreifen auf Amazon QLDB. Diese umfasst die folgenden Funktionen:

    1. Melden Sie sich an für. AWS

    2. Erstellen Sie einen Benutzer mit den entsprechenden QLDB-Berechtigungen.

    3. Gewähren Sie programmatischen Zugriff für die Entwicklung.

  2. Installieren Sie Node.js Version 14.x oder höher von der Downloadseite Node.js. (Frühere Versionen des Treibers unterstützen Node.js Version 10.x oder höher.)

  3. Konfigurieren Sie Ihre Entwicklungsumgebung für das AWSSDK für JavaScript in Node.js:

    1. Richten Sie Ihre AWS-Anmeldeinformationen ein. Wir empfehlen, eine Datei mit gemeinsamen Anmeldeinformationen zu erstellen.

      Eine Anleitung dazu finden Sie im AWS SDK for JavaScriptEntwicklerhandbuch unter Laden von Anmeldeinformationen in Node.js aus der Datei mit den gemeinsamen Anmeldeinformationen.

    2. Stellen Sie Ihre Standardeinstellung einAWS-Region. Wie das geht, erfahren Sie unter Einstellen vonAWS-Region.

      Eine vollständige Liste der verfügbaren Regionen finden Sie unter Amazon QLDB-Endpunkte und Kontingente in der. Allgemeine AWS-Referenz

Als Nächstes können Sie die vollständige Tutorial-Beispielanwendung herunterladen — oder Sie können nur den Treiber in einem Node.js -Projekt installieren und kurze Codebeispiele ausführen.

  • Um den QLDB-Treiber und das AWS SDK für JavaScript in Node.js in einem vorhandenen Projekt zu installieren, fahren Sie mit fort. Installation

  • Informationen zum Einrichten eines Projekts und zur Ausführung von Kurzcodebeispielen, die grundlegende Datentransaktionen in einem Ledger demonstrieren, finden Sie unter. Erste-Schrit-T-T-TSchrit

  • Ausführlichere Beispiele für Daten- und Verwaltungs-API-Operationen in der vollständigen Beispielanwendung des Tutorials finden Sie unter. Anleitung zu Node.js

Installation

QLDB unterstützt die folgenden Treiberversionen und ihre Node.js Abhängigkeiten.

Treiberversion Node.js-Version Status Datum der letzten Veröffentlichung
1.x 10.x oder später Produktionsfreigabe 5. Juni 2020
2.x 10.x oder später Produktionsfreigabe 6. Mai 2021
3.x 14.x oder später Produktionsfreigabe 10. November 2023

Um den QLDB-Treiber mit npm (dem Paketmanager Node.js) zu installieren, geben Sie den folgenden Befehl aus Ihrem Projektstammverzeichnis ein.

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

Der Treiber hat Peer-Abhängigkeiten von den folgenden Paketen. Sie müssen diese Pakete auch als Abhängigkeiten in Ihrem Projekt installieren.

3.x

Modularer aggregierter QLDB-Client (Management-API)

npm install @aws-sdk/client-qldb

Modularer aggregierter QLDB-Sitzungsclient (Daten-API)

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

Amazon Ion-Datenformat

npm install ion-js

Reine JavaScript Implementierung von BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Amazon Ion-Datenformat

npm install ion-js@4.0.0

Reine JavaScript Implementierung von BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Amazon Ion-Datenformat

npm install ion-js@4.0.0

Reine JavaScript Implementierung von BigInt

npm install jsbi@3.1.1

Verwenden des Treibers zum Herstellen einer Verbindung mit einem Ledger

Dann können Sie den Treiber importieren und mit ihm eine Verbindung zu einem Ledger herstellen. Das folgende TypeScript Codebeispiel zeigt, wie eine Treiberinstanz für einen bestimmten Ledgernamen und AWS-Region erstellt wird.

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

Kurze Codebeispiele für die Ausführung von Basisdatentransaktionen in einem Ledger finden Sie unter. Kochbuchreferenz — Referenz für

Empfehlungen zur Einrichtung

Verbindungen mit Keep-Alive wiederverwenden

Der standardmäßige Node.js-HTTP/HTTPS-Agent erstellt eine neue TCP-Verbindung für jede neue Anforderung. Um die Kosten für den Aufbau einer neuen Verbindung zu vermeiden, verwendet AWS SDK for JavaScript Version 3 standardmäßig TCP-Verbindungen wieder. Weitere Informationen und Informationen zum Deaktivieren der Wiederverwendung von Verbindungen finden Sie unter Wiederverwenden von Verbindungen mit Keep-Alive in Node.js im Entwicklerhandbuch. AWS SDK for JavaScript

Wir empfehlen, die Standardeinstellung zu verwenden, um Verbindungen im QLDB-Treiber für Node.js wiederzuverwenden. Stellen Sie bei der Treiberinitialisierung die Low-Level-Client-HTTP-Option auf denselben Wert einmaxSockets, den Sie für festgelegt haben. maxConcurrentTransactions

Sehen Sie sich zum Beispiel den folgenden Code JavaScript an. TypeScript

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

Der standardmäßige Node.js-HTTP/HTTPS-Agent erstellt eine neue TCP-Verbindung für jede neue Anforderung. Um die Kosten für den Aufbau einer neuen Verbindung zu vermeiden, empfehlen wir, eine bestehende Verbindung wiederzuverwenden.

Verwenden Sie eine der folgenden Optionen, um Verbindungen im QLDB-Treiber für Node.js wiederzuverwenden:

  • Stellen Sie während der Treiberinitialisierung die folgenden Low-Level-Client-HTTP-Optionen ein:

    • keepAlivetrue

    • maxSockets— Derselbe Wert, den Sie für festgelegt haben maxConcurrentTransactions

    Sehen Sie sich zum Beispiel den folgenden JavaScript TypeScript Code an.

    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);
  • Alternativ können Sie die AWS_NODEJS_CONNECTION_REUSE_ENABLED Umgebungsvariable auf setzen1. Weitere Informationen finden Sie unter Wiederverwenden von Verbindungen mit Keep-Alive in Node.js im AWS SDK for JavaScript Entwicklerhandbuch.

    Anmerkung

    Wenn Sie diese Umgebungsvariable festlegen, wirkt sich dies auf alle aus, die AWS-Services die verwenden. AWS SDK for JavaScript