Driver Amazon QLDB untuk Node.js - Amazon Quantum Ledger Database (Amazon QLDB)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Driver Amazon QLDB untuk Node.js

Untuk bekerja dengan data dalam buku besar Anda, Anda dapat terhubung ke Amazon QLDB dari aplikasi Node.js Anda dengan menggunakan driver yang disediakan. AWS Topik berikut menjelaskan cara memulai dengan driver QLDB untuk Node.js.

Sumber daya pengemudi

Untuk informasi selengkapnya tentang fungsionalitas yang didukung oleh driver Node.js, lihat sumber daya berikut:

Prasyarat

Sebelum Anda memulai dengan driver QLDB untuk Node.js, Anda harus melakukan hal berikut:

  1. Ikuti instruksi AWS pengaturan diMengakses Amazon QLDB. Ini termasuk yang berikut:

    1. Daftar ke AWS.

    2. Buat pengguna dengan izin QLDB yang sesuai.

    3. Memberikan akses terprogram untuk pengembangan.

  2. Instal Node.js versi 14.x atau yang lebih baru dari situs unduhan Node.js. (Versi driver sebelumnya mendukung Node.js versi 10.x atau yang lebih baru.)

  3. Konfigurasikan lingkungan pengembangan Anda untuk AWSSDK untuk JavaScript di Node.js:

    1. Siapkan AWS kredensional Anda. Sebaiknya buat file kredensial bersama.

      Untuk petunjuknya, lihat Memuat kredensi di Node.js dari file kredensial bersama di Panduan Pengembang. AWS SDK for JavaScript

    2. Tetapkan default AndaWilayah AWS. Untuk mempelajari caranya, lihat Mengatur Wilayah AWS.

      Untuk daftar lengkap Wilayah yang tersedia, lihat titik akhir dan kuota Amazon QLDB di bagian. Referensi Umum AWS

Selanjutnya, Anda dapat mengunduh aplikasi contoh tutorial lengkap—atau Anda hanya dapat menginstal driver dalam proyek Node.js dan menjalankan contoh kode pendek.

  • Untuk menginstal driver QLDB dan SDK JavaScript untuk AWS di Node.js dalam proyek yang ada, lanjutkan ke. Instalasi

  • Untuk menyiapkan proyek dan menjalankan contoh kode pendek yang menunjukkan transaksi data dasar pada buku besar, lihat. Tutorial Quick Start

  • Untuk menjalankan contoh yang lebih mendalam dari operasi API data dan manajemen dalam aplikasi contoh tutorial lengkap, lihat. Node.js tutorial

Instalasi

QLDB mendukung versi driver berikut dan dependensi Node.js mereka.

Versi Driver Versi Node.js Status Tanggal rilis terbaru
1.x 10.x atau yang lebih baru Rilis produksi 5 Juni 2020
2.x 10.x atau yang lebih baru Rilis produksi 6 Mei 2021
3.x 14.x atau lebih baru Rilis produksi November 10, 2023

Untuk menginstal driver QLDB menggunakan npm (manajer paket Node.js), masukkan perintah berikut dari direktori root proyek Anda.

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

Driver memiliki dependensi peer pada paket-paket berikut. Anda juga harus menginstal paket-paket ini sebagai dependensi dalam proyek Anda.

3.x

Klien QLDB agregat modular (API manajemen)

npm install @aws-sdk/client-qldb

Klien Sesi QLDB agregat modular (API data)

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

Format data Amazon Ion

npm install ion-js

JavaScript Implementasi murni BigInt

npm install jsbi
2.x

AWS SDK for JavaScript

npm install aws-sdk

Format data Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementasi murni BigInt

npm install jsbi@3.1.1
1.x

AWS SDK for JavaScript

npm install aws-sdk

Format data Amazon Ion

npm install ion-js@4.0.0

JavaScript Implementasi murni BigInt

npm install jsbi@3.1.1

Menggunakan driver untuk terhubung ke buku besar

Kemudian Anda dapat mengimpor driver dan menggunakannya untuk terhubung ke buku besar. Contoh TypeScript kode berikut menunjukkan cara membuat instance driver untuk nama buku besar tertentu danWilayah 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); });

Untuk contoh kode singkat tentang cara menjalankan transaksi data dasar pada buku besar, lihat. Referensi buku masak

Rekomendasi pengaturan

Menggunakan kembali koneksi dengan keep-alive

Agen HTTP/HTTPS Node.js default membuat koneksi TCP baru untuk setiap permintaan baru. Untuk menghindari biaya membuat koneksi baru, AWS SDK for JavaScript v3 menggunakan kembali koneksi TCP secara default. Untuk informasi selengkapnya dan mempelajari cara menonaktifkan penggunaan kembali koneksi, lihat Menggunakan kembali koneksi dengan keep-alive di Node.js di Panduan Pengembang. AWS SDK for JavaScript

Sebaiknya gunakan pengaturan default untuk menggunakan kembali koneksi di driver QLDB untuk Node.js. Selama inisialisasi driver, atur opsi HTTP klien tingkat rendah maxSockets ke nilai yang sama dengan yang Anda tetapkan. maxConcurrentTransactions

Misalnya, lihat TypeScript kode JavaScript atau kode berikut.

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

Agen HTTP/HTTPS Node.js default membuat koneksi TCP baru untuk setiap permintaan baru. Untuk menghindari biaya pembuatan koneksi baru, kami sarankan untuk menggunakan kembali koneksi yang ada.

Untuk menggunakan kembali koneksi di driver QLDB untuk Node.js, gunakan salah satu opsi berikut:

  • Selama inisialisasi driver, atur opsi HTTP klien tingkat rendah berikut:

    • keepAlivetrue

    • maxSockets— Nilai yang sama yang Anda tetapkan maxConcurrentTransactions

    Misalnya, lihat TypeScript kode JavaScript atau kode berikut.

    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);
  • Atau, Anda dapat mengatur variabel AWS_NODEJS_CONNECTION_REUSE_ENABLED lingkungan ke1. Untuk informasi selengkapnya, lihat Menggunakan Kembali Koneksi dengan Keep-Alive di Node.js di Panduan Pengembang. AWS SDK for JavaScript

    catatan

    Jika Anda mengatur variabel lingkungan ini, itu mempengaruhi semua Layanan AWS yang menggunakanAWS SDK for JavaScript.