Node.js 用の Amazon QLDBドライバー - Amazon Quantum 台帳データベース (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Node.js 用の Amazon QLDBドライバー

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

台帳内のデータを操作するには、 AWS が提供するドライバーを使用して Node.js アプリケーションQLDBから Amazon に接続できます。以下のトピックでは、Node.js 用QLDBドライバーの使用を開始する方法について説明します。

ドライバーに関するリソース

Node.js ドライバーでサポートされている機能の詳細については、以下のリソースを参照してください。

前提条件

Node.js 用QLDBドライバーの使用を開始する前に、次の操作を行う必要があります。

  1. AWS 「」のセットアップ手順に従ってくださいAmazon へのアクセス QLDB。これには以下が含まれます。

    1. にサインアップします AWS。

    2. 適切なQLDBアクセス許可を持つユーザーを作成します。

    3. 開発に必要なプログラムへのアクセスを提供します。

  2. Node.js ダウンロードサイトから Node.js バージョン 14.x 以降をインストールします。(以前のバージョンのドライバーは Node.js バージョン 10.x 以降をサポートしています)

  3. AWS SDK Node.js JavaScript の 用の開発環境を設定します。

    1. AWS 認証情報を設定します。共有認証情報ファイルを作成することをお勧めします。

      手順については、「AWS SDK for JavaScript デベロッパーガイド」の「共有認証情報ファイルから Node.js に認証情報をロードする」を参照してください。

    2. デフォルトの AWS リージョンを設定します。この方法については、「AWS リージョンの設定」を参照してください。

      利用可能なリージョンの完全なリストについては、「」の「Amazon QLDBエンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス

次に、すべてのチュートリアル用のサンプルアプリケーションをダウンロードするか、Node.js プロジェクトにのみドライバーをインストールして短いコード例を実行できます。

  • 既存のプロジェクト JavaScript で Node.js にQLDBドライバーと AWS SDK の をインストールするには、 に進みますインストール

  • プロジェクトを設定し、台帳の基本的なデータトランザクションを示す短いコード例については、「クイックスタートチュートリアル」を参照してください。

  • 完全なチュートリアルサンプルアプリケーションで、データと管理APIオペレーションの両方の詳細な例を実行するには、「」を参照してくださいNode.js チュートリアル

インストール

QLDB は、次のドライバーバージョンとその Node.js 依存関係をサポートしています。

ドライバーのバージョン Node.js バージョン ステータス 最新リリース日
1.x 10.x 以降 本番リリース 2020 年 6 月 5 日
2.x 10.x 以降 本番リリース 2021 年 5 月 6 日
3.x 14.x 以降 本番リリース 2023 年 11 月 10 日

npm (Node.js パッケージマネージャー) を使用してQLDBドライバーをインストールするには、プロジェクトのルートディレクトリから次のコマンドを入力します。

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

ドライバーには次のパッケージへのピア依存関係があります。これらのパッケージをプロジェクトの依存関係としてインストールする必要もあります。

3.x

モジュール式集約QLDBクライアント (管理API)

npm install @aws-sdk/client-qldb

モジュール式集約QLDBセッションクライアント (データ API)

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

Amazon Ion データ形式

npm install ion-js

の純粋な JavaScript 実装 BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Amazon Ion データ形式

npm install ion-js@4.0.0

の純粋な JavaScript 実装 BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Amazon Ion データ形式

npm install ion-js@4.0.0

の純粋な JavaScript 実装 BigInt

npm install jsbi@3.1.1

ドライバーを使用して台帳に接続する

その後、ドライバーをインポートし、それを使用して台帳に接続することができます。次の TypeScript コード例は、指定された台帳名 および のドライバーインスタンスを作成する方法を示しています 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); });

台帳に対して基本的なデータトランザクションを実行する方法を示す短いコード例については、「クックブックリファレンス」を参照してください。

セットアップの推奨事項

Keep-alive を使用して接続を再利用する

デフォルトの Node.js HTTP/HTTPS エージェントは、新しいリクエストごとに新しいTCP接続を作成します。新しい接続を確立するコストを回避するために、 AWS SDK for JavaScript v3 はデフォルトでTCP接続を再利用します。詳細および接続の再利用を無効にする方法については、「AWS SDK for JavaScript デベロッパーガイド」の「Node.js で Keep-alive を使用して接続を再利用する」を参照してください。

Node.js 用QLDBドライバーの接続を再利用するには、デフォルト設定を使用することをお勧めします。ドライバーの初期化中に、低レベルクライアントHTTPオプションmaxSocketsを に設定したのと同じ値に設定しますmaxConcurrentTransactions

例えば、次の JavaScript または 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);

デフォルトの Node.js HTTP/HTTPS エージェントは、新しいリクエストごとに新しいTCP接続を作成します。新しい接続を確立するコストを回避するために、既存の接続の再利用をお勧めします。

Node.js 用QLDBドライバーの接続を再利用するには、次のいずれかのオプションを使用します。

  • ドライバーの初期化中に、以下の低レベルクライアントHTTPオプションを設定します。

    • keepAlivetrue

    • maxSocketsmaxConcurrentTransactions に設定したのと同じ値

    例えば、次の JavaScript または 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({ "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);
  • または、AWS_NODEJS_CONNECTION_REUSE_ENABLED 環境変数を 1 に設定することもできます。詳細については、「AWS SDK for JavaScript デベロッパーガイド」の「Node.js で Keep-alive を使用して接続を再利用する」を参照してください。

    注記

    この環境変数を設定すると、 AWS SDK for JavaScriptを使用するすべての AWS のサービス に影響が生じます。