QLDBDriver Amazon untuk Node.js - Database Buku Besar Amazon Quantum (AmazonQLDB)

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

QLDBDriver Amazon untuk Node.js

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Untuk bekerja dengan data dalam buku besar Anda, Anda dapat terhubung ke Amazon QLDB dari aplikasi Node.js Anda dengan menggunakan driver yang AWS disediakan. Topik berikut menjelaskan cara memulai dengan QLDB driver 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 QLDB driver untuk Node.js, Anda harus melakukan hal berikut:

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

    1. Mendaftar untuk AWS.

    2. Buat pengguna dengan QLDB izin 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 AWS SDKuntuk for JavaScript di Node.js:

    1. Siapkan AWS kredensil 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 Anda Wilayah AWS. Untuk mempelajari caranya, lihat Mengatur Wilayah AWS.

      Untuk daftar lengkap Wilayah yang tersedia, lihat QLDBtitik akhir dan kuota Amazon di. 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 QLDB driver dan AWS SDK for di Node.js JavaScript dalam proyek yang ada, lanjutkan kePenginstalan.

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

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

Penginstalan

QLDBmendukung 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 10 November 2023

Untuk menginstal QLDB driver 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

QLDBKlien agregat modular (manajemenAPI)

npm install @aws-sdk/client-qldb

Klien QLDBSesi agregat modular (dataAPI)

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 dan Wilayah 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

HTTPSAgen Node.jsHTTP/default membuat TCP koneksi baru untuk setiap permintaan baru. Untuk menghindari biaya membuat koneksi baru, AWS SDK for JavaScript v3 menggunakan kembali TCP koneksi 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 QLDB driver untuk Node.js. Selama inisialisasi driver, atur HTTP opsi 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);

HTTPSAgen Node.jsHTTP/default membuat TCP koneksi baru untuk setiap permintaan baru. Untuk menghindari biaya pembuatan koneksi baru, kami sarankan untuk menggunakan kembali koneksi yang ada.

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

  • Selama inisialisasi driver, atur opsi klien HTTP 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 menggunakan AWS SDK for JavaScript.