기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Node.js 용 아마존 QLDB 드라이버
원장의 데이터로 작업하려면 AWS 제공된 드라이버를 사용하여 Node.js QLDB 애플리케이션에서 Amazon에 연결할 수 있습니다. 다음 항목에서는 Node.js QLDB 드라이버를 시작하는 방법을 설명합니다.
드라이버 리소스
Node.js 드라이버에서 지원하는 기능에 대한 자세한 정보는 다음 리소스를 참조하세요.
사전 조건
Node.js QLDB 드라이버를 시작하기 전에 먼저 다음을 수행해야 합니다.
-
의 AWS 설치 지침을 따르십시오아마존 액세스 QLDB. 다음 내용이 포함됩니다:
-
가입하세요 AWS.
-
적절한 QLDB 권한을 가진 사용자를 만드세요.
-
개발을 위한 프로그래밍 방식 액세스 권한을 부여합니다.
-
Node.js 다운로드 사이트에서 Node.js 버전 14.x 이상을 설치하세요. (이전 버전의 드라이버는 Node.js 버전 10.x 이상을 지원합니다.)
-
Node.js JavaScript 형식의 개발 환경을 구성하십시오.AWS SDK
다음으로 전체 자습서 샘플 애플리케이션을 다운로드하거나 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
예를 들어, 다음 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 서비스 에게 영향을 줍니다.