Node.js 용 아마존 QLDB 드라이버 - Amazon Quantum 원장 데이터베이스(Amazon QLDB)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Node.js 용 아마존 QLDB 드라이버

중요

지원 종료 알림: 기존 고객은 2025년 7월 31일 지원이 종료될 QLDB 때까지 Amazon을 사용할 수 있습니다. 자세한 내용은 아마존 QLDB 원장을 Amazon Aurora SQL Postgre로 마이그레이션을 참조하십시오.

원장의 데이터로 작업하려면 AWS 제공된 드라이버를 사용하여 Node.js QLDB 애플리케이션에서 Amazon에 연결할 수 있습니다. 다음 항목에서는 Node.js QLDB 드라이버를 시작하는 방법을 설명합니다.

드라이버 리소스

Node.js 드라이버에서 지원하는 기능에 대한 자세한 정보는 다음 리소스를 참조하세요.

사전 조건

Node.js QLDB 드라이버를 시작하기 전에 먼저 다음을 수행해야 합니다.

  1. 의 AWS 설치 지침을 따르십시오아마존 액세스 QLDB. 다음 내용이 포함됩니다:

    1. 가입하세요 AWS.

    2. 적절한 QLDB 권한을 가진 사용자를 만드세요.

    3. 개발을 위한 프로그래밍 방식 액세스 권한을 부여합니다.

  2. Node.js 다운로드 사이트에서 Node.js 버전 14.x 이상을 설치하세요. (이전 버전의 드라이버는 Node.js 버전 10.x 이상을 지원합니다.)

  3. Node.js JavaScript 형식의 개발 환경을 구성하십시오.AWS SDK

    1. AWS 자격 증명을 설정합니다. 공유 보안 인증 파일을 생성할 것을 권장합니다.

      지침은 AWS SDK for JavaScript 개발자 안내서공유 보안 인증 파일에서 Node.js 보안 인증 로드를 참조하세요.

    2. 기본 AWS 리전을 설정하세요. 사용 방법을 배우려면 AWS 리전설정을 참조하세요.

      사용 가능한 지역의 전체 목록은 의 Amazon QLDB 엔드포인트 및 할당량을 참조하십시오. AWS 일반 참조

다음으로 전체 자습서 샘플 애플리케이션을 다운로드하거나 Node.js 프로젝트에 드라이버만 설치하고 단축 코드 예제를 실행할 수 있습니다.

  • 기존 프로젝트의 Node.js QLDB 드라이버와 AWS SDK form을 JavaScript 설치하려면 로 진행하십시오. 설치

  • 프로젝트를 설정하고 원장에 대한 기본 데이터 트랜잭션을 보여주는 단축 코드 예제를 실행하려면 빠른 시작 자습서를 참조하세요.

  • 전체 자습서 샘플 애플리케이션에서 데이터 및 관리 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); });

원장에서 기본 데이터 트랜잭션을 실행하는 방법에 대한 단축 코드 예제는 Cookbook 참조를 참조하세요.

설정 권장 사항

연결 유지를 통한 연결 재사용

기본 Node.jsHTTP/HTTPS에이전트는 모든 새 요청에 대해 새 TCP 연결을 생성합니다. 새 연결을 설정하는 데 드는 비용을 피하기 위해 AWS SDK for JavaScript v3에서는 기본적으로 TCP 연결을 재사용합니다. 자세한 내용과 연결 재사용을 비활성화하는 방법을 알아보려면 AWS SDK for JavaScript 개발자 안내서Node.js에서 연결 유지를 이용해 연결 재사용을 참조하세요.

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.jsHTTP/HTTPS에이전트는 모든 새 요청에 대해 새 TCP 연결을 생성합니다. 새 연결 설정 비용이 발생하지 않게 하려면 기존 연결을 재사용할 것을 권장합니다.

Node.js QLDB 드라이버의 연결을 재사용하려면 다음 옵션 중 하나를 사용하십시오.

  • 드라이버 초기화 중에 다음과 같은 저수준 클라이언트 옵션을 설정하십시오. HTTP

    • keepAlivetrue

    • 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({ "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에서 연결 유지를 통한 연결 재사용을 참조하세요.

    참고

    이 환경 변수를 설정하면 AWS SDK for JavaScript를 사용하는 모든 AWS 서비스 에게 영향을 줍니다.