Connettore Aurora DSQL per Postgres.js - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connettore Aurora DSQL per Postgres.js

Il connettore Aurora DSQL per Postgres.js è un connettore Node.js basato su Postgres.js che integra l'autenticazione IAM per connettere le applicazioni ai cluster DSQL di JavaScript Amazon Aurora.

Il connettore Aurora DSQL per Postgres.js è progettato come un plug-in di autenticazione che estende la funzionalità del client Postgres.js per consentire alle applicazioni di autenticarsi con Amazon Aurora DSQL utilizzando credenziali IAM. Il connettore non si connette direttamente al database, ma fornisce un'autenticazione IAM senza interruzioni in aggiunta al driver Postgres.js sottostante.

Informazioni sul connettore

Amazon Aurora DSQL è un servizio di database SQL distribuito che offre disponibilità e scalabilità elevate per applicazioni compatibili con PostgreSQL. Aurora DSQL richiede l'autenticazione basata su IAM con token a tempo limitato che i driver Node.js esistenti non supportano nativamente.

L'idea alla base del connettore Aurora DSQL per Postgres.js consiste nell'aggiungere un livello di autenticazione al client Postgres.js che gestisce la generazione di token IAM, permettendo agli utenti di connettersi ad Aurora DSQL senza modificare i flussi di lavoro Postgres.js esistenti.

Il connettore Aurora DSQL per Postgres.js funziona con la maggior parte delle versioni di Postgres.js. Gli utenti forniscono la propria versione installando direttamente Postgres.js.

Che cos’è l’autenticazione di Aurora DSQL?

In Aurora DSQL, l’autenticazione prevede:

  • Autenticazione IAM: tutte le connessioni utilizzano l’autenticazione basata su IAM con token a tempo limitato

  • Generazione di token: i token di autenticazione vengono generati utilizzando credenziali AWS e hanno una durata configurabile

Il connettore Aurora DSQL per Postgres.js è progettato per comprendere questi requisiti e generare automaticamente token di autenticazione IAM quando si stabiliscono connessioni.

Funzionalità

  • Autenticazione IAM automatica: gestisce la generazione e l'aggiornamento dei token DSQL

  • Basato su Postgres.js: sfrutta il veloce client PostgreSQL per Node.js

  • Integrazione perfetta: funziona con i modelli di connessione Postgres.js esistenti

  • Region Auto-Discovery: estrae la regione AWS dal nome host del cluster DSQL

  • TypeScript Supporto completo: offre una sicurezza completa

  • AWS Credentials Support: supporta vari provider di credenziali AWS (predefiniti, basati su profili, personalizzati)

  • Compatibilità con il pool di connessioni: funziona perfettamente con il pool di connessioni integrato di Postgres.js

Guida rapida di avvio

Requisiti

  • Node.js 20+

  • Accesso a un cluster Aurora DSQL

  • Configurazione delle autorizzazioni IAM appropriate per consentire all’applicazione di connettersi ad Aurora DSQL.

  • Credenziali AWS configurate (tramite CLI AWS, variabili di ambiente o ruoli IAM)

Installazione

npm install @aws/aurora-dsql-postgresjs-connector # Postgres.js is a peer-dependency, so users must install it themselves npm install postgres

Utilizzo di base

import { auroraDSQLPostgres } from '@aws/aurora-dsql-postgresjs-connector'; const sql = auroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', username: 'admin', }); // Execute queries const result = await sql`SELECT current_timestamp`; console.log(result); // Clean up await sql.end();

Utilizzo dell'ID del cluster anziché dell'host

const sql = auroraDSQLPostgres({ host: 'your-cluster-id', region: 'us-east-1', username: 'admin', });

Stringa di connessione

const sql = AuroraDSQLPostgres( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws' ); const result = await sql`SELECT current_timestamp`;

Configurazione avanzata

import { fromNodeProviderChain } from '@aws-sdk/credential-providers'; const sql = AuroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', database: 'postgres', username: 'admin', customCredentialsProvider: fromNodeProviderChain(), // Optionally provide custom credentials provider tokenDurationSecs: 3600, // Token expiration (seconds) // Standard Postgres.js options max: 20, // Connection pool size ssl: { rejectUnauthorized: false } // SSL configuration });

Opzioni di configurazione

Opzione Tipo Campo obbligatorio Descrizione
host string Nome host o ID del cluster DSQL
database string? No Nome del database
username string? No Nome utente del database (utilizza admin se non fornito)
region string? No Regione AWS (rilevata automaticamente dal nome host se non fornita)
customCredentialsProvider AwsCredentialIdentityProvider? No Provider di credenziali AWS personalizzate
tokenDurationSecs number? No Tempo di scadenza del token in secondi

Sono supportate anche tutte le opzioni standard di Postgres.js.

Autenticazione

Il connettore gestisce automaticamente l'autenticazione DSQL generando token utilizzando il generatore di token client DSQL. Se la regione AWS non viene fornita, verrà analizzata automaticamente a partire dal nome host fornito.

Per ulteriori informazioni sull'autenticazione in Aurora DSQL, consulta la guida per l'utente.

Amministratore e utenti regolari

  • Gli utenti denominati «admin» utilizzano automaticamente i token di autenticazione dell'amministratore

  • Tutti gli altri utenti utilizzano token di autenticazione regolari

  • I token vengono generati dinamicamente per ogni connessione

Esempio di utilizzo

JavaScript esempi che utilizzano il connettore Aurora DSQL per Postgres.js sono disponibili su. GitHub Per istruzioni su come eseguire gli esempi, fate riferimento alla directory examples.

Description Esempio
Connessione condivisa con interrogazioni simultanee, tra cui creazione di tabelle, inserimenti e letture tra più worker Esempio di pool di connessioni (preferito)
Operazioni CRUD (creazione di tabella, inserimento, selezione, eliminazione) senza pool di connessioni Esempio senza pool di connessioni