

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
<a name="SECTION_program-with-dsql-connector-for-postgresjs"></a>

 Il connettore [Aurora DSQL per Postgres.js è un connettore](https://github.com/awslabs/aurora-dsql-connectors/tree/main/node/postgres-js) Node.js basato su [Postgres.js](https://github.com/porsager/postgres) 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
<a name="about-the-connector"></a>

 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?
<a name="what-is-aurora-dsql-authentication"></a>

 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à
<a name="features"></a>
+  **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
<a name="quick-start-guide"></a>

### Requisiti
<a name="requirements"></a>
+  Node.js 20\$1 
+  [Accesso a un cluster Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/getting-started.html) 
+  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
<a name="installation"></a>

```
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
<a name="basic-usage"></a>

```
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
<a name="using-cluster-id-instead-of-host"></a>

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

### Stringa di connessione
<a name="connection-string"></a>

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

const result = await sql`SELECT current_timestamp`;
```

### Configurazione avanzata
<a name="advanced-configuration"></a>

```
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
<a name="configuration-options"></a>


|  Opzione  |  Tipo  |  Campo obbligatorio  |  Descrizione  | 
| --- | --- | --- | --- | 
|  host  |  string  |  Sì  |  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](https://github.com/porsager/postgres?tab=readme-ov-file#connection-details). 

## Autenticazione
<a name="authentication"></a>

 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.](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/authentication-authorization.html) 

### Amministratore e utenti regolari
<a name="admin-vs-regular-users"></a>
+  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
<a name="sample-usage"></a>

 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](https://github.com/awslabs/aurora-dsql-connectors/tree/main/node/postgres-js/example). 


|  Description  |  Esempio  | 
| --- | --- | 
|  Connessione condivisa con interrogazioni simultanee, tra cui creazione di tabelle, inserimenti e letture tra più worker  |  [Esempio di pool di connessioni (preferito)](https://github.com/awslabs/aurora-dsql-connectors/blob/main/node/postgres-js/example/src/example_preferred.js)  | 
|  Operazioni CRUD (creazione di tabella, inserimento, selezione, eliminazione) senza pool di connessioni  |  [Esempio senza pool di connessioni](https://github.com/awslabs/aurora-dsql-connectors/blob/main/node/postgres-js/example/src/alternatives/no_connection_pool/example_with_no_connection_pool.js)  | 