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à.
Connessione ai cluster Aurora DSQL con un connettore.NET
Amazon Aurora DSQL Connector for .NET è un connettore.NET
Il connettore gestisce la generazione di token, la configurazione SSL e il pool di connessioni in modo da poterti concentrare sulla logica dell'applicazione.
Informazioni sul connettore
Amazon Aurora DSQL richiede l'autenticazione IAM con token a tempo limitato che i driver.NET PostgreSQL esistenti non supportano nativamente. L'Aurora DSQL Connector for .NET aggiunge un livello di autenticazione a Npgsql che gestisce la generazione di token IAM, consentendoti di connetterti ad Aurora DSQL senza modificare i flussi di lavoro Npgsql esistenti.
Cos'è l'autenticazione Aurora SQL?
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: il connettore genera token di autenticazione utilizzando AWS credenziali e questi token hanno una durata configurabile
L'Aurora DSQL Connector for .NET comprende questi requisiti e genera automaticamente token di autenticazione IAM quando si stabiliscono connessioni.
Funzionalità
-
Autenticazione IAM automatica: gestisce la generazione e l'aggiornamento dei token Aurora DSQL
-
Basato su Npgsql: racchiude il popolare driver PostgreSQL per.NET
-
Integrazione perfetta: funziona con i flussi di lavoro Npgsql esistenti
-
Connessione in pool - Supporto integrato tramite With Max Lifetime Enforcement
NpgsqlDataSource -
Rilevamento automatico della regione: estrae la AWS regione dal nome host del cluster Aurora DSQL
-
AWS supporto per le credenziali: supporta profili e fornitori di credenziali personalizzate AWS
-
Riprova OCC: attiva un nuovo tentativo ottimistico di controllo della concorrenza con backoff esponenziale
-
Applicazione SSL: utilizza sempre SSL con negoziazione TLS modale e diretta
verify-full
Applicazione di esempio
Per un esempio completo, vedi l'applicazione di esempio
Guida rapida di avvio
Requisiti
-
.NET 8.0 o versione successiva
-
AWS credenziali configurate (tramite AWS CLI, variabili di ambiente o ruoli IAM)
Installazione
Aggiungi il pacchetto al tuo progetto:
dotnet add package Amazon.AuroraDsql.Npgsql
Utilizzo
Connessione alla piscina
using Amazon.AuroraDsql.Npgsql; // Create a connection pool await using var ds = await AuroraDsql.CreateDataSourceAsync(new DsqlConfig { Host = "your-cluster.dsql.us-east-1.on.aws", OccMaxRetries = 3 }); // Read await using (var conn = await ds.OpenConnectionAsync()) { await using var cmd = conn.CreateCommand(); cmd.CommandText = "SELECT 'Hello, DSQL!'"; var greeting = await cmd.ExecuteScalarAsync(); Console.WriteLine(greeting); } // Transactional write with OCC retry await ds.WithTransactionRetryAsync(async conn => { await using var cmd = conn.CreateCommand(); cmd.CommandText = "INSERT INTO users (id, name) VALUES (gen_random_uuid(), @name)"; cmd.Parameters.AddWithValue("name", "Alice"); await cmd.ExecuteNonQueryAsync(); });
Connessione singola
Per script semplici o quando non è necessario il pool di connessioni:
await using var conn = await AuroraDsql.ConnectAsync(new DsqlConfig { Host = "your-cluster.dsql.us-east-1.on.aws" }); await using var cmd = conn.CreateCommand("SELECT 1"); await cmd.ExecuteScalarAsync();
Riprova OCC
Aurora DSQL utilizza il controllo ottimistico della concorrenza (OCC). Quando due transazioni modificano gli stessi dati, la prima che esegue il commit vince e la seconda riceve un errore OCC.
Il nuovo tentativo OCC è facoltativo. Impostato OccMaxRetries nella configurazione per abilitare il nuovo tentativo automatico con backoff e jitter esponenziali. WithTransactionRetryAsyncUso per le scritture transazionali:
await ds.WithTransactionRetryAsync(async conn => { await using var cmd = conn.CreateCommand(); cmd.CommandText = "UPDATE accounts SET balance = balance - 100 WHERE id = @from"; cmd.Parameters.AddWithValue("from", fromId); await cmd.ExecuteNonQueryAsync(); cmd.CommandText = "UPDATE accounts SET balance = balance + 100 WHERE id = @to"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("to", toId); await cmd.ExecuteNonQueryAsync(); });
Per le istruzioni DDL o singole, usa: ExecWithRetryAsync
await ds.ExecWithRetryAsync("CREATE TABLE IF NOT EXISTS users (id UUID PRIMARY KEY, name TEXT)");
Importante
WithTransactionRetryAsyncgestisceBEGIN/COMMIT/ROLLBACKinternamente e apre una nuova connessione per ogni tentativo. Il callback deve contenere solo le operazioni del database ed essere sicuro da riprovare.
Opzioni di configurazione
Il connettore accetta anche stringhe postgres:// di postgresql:// connessione con region parametri di interrogazione. profile
| Campo | Tipo | Predefinita | Description |
|---|---|---|---|
Host |
string |
(obbligatorio) | Endpoint del cluster o ID del cluster a 26 caratteri |
Region |
string? |
(rilevato automaticamente) | AWS regione; obbligatorio se Host è un ID del cluster |
User |
string |
"admin" |
Utente del database |
Database |
string |
"postgres" |
Nome del database |
Port |
int |
5432 |
Database port (Porta del database) |
Profile |
string? |
null |
AWS nome del profilo per le credenziali |
CustomCredentialsProvider |
AWSCredentials? |
null |
fornitore di AWS credenziali personalizzate |
TokenDurationSecs |
int? |
null(SDK predefinito, 900s) |
Durata della validità del token in secondi |
OccMaxRetries |
int? |
null(disabilitato) |
Numero massimo di tentativi OCC predefinito per i metodi di ripetizione sull'origine dati |
OrmPrefix |
string? |
null |
Prefisso ORM preceduto da application_name |
LoggerFactory |
ILoggerFactory? |
null |
Logger Factory per avvisi e diagnosi di nuovi tentativi |
ConfigureConnectionString |
Action<NpgsqlConnectionStringBuilder>? |
null |
Richiamata per sovrascrivere le impostazioni del pool o impostare proprietà aggiuntive della stringa di connessione Npgsql. SSL e Enlist sono invarianti di sicurezza e non possono essere sovrascritti. |
Autenticazione
Il connettore gestisce automaticamente l'autenticazione Aurora DSQL generando token utilizzando credenziali. AWS Se non fornite la AWS regione, il connettore la analizza a partire dal nome host.
Per ulteriori informazioni sull'autenticazione in Aurora DSQL, vedere. Autenticazione e autorizzazione per Aurora DSQL
Amministratore e utenti normali
-
Gli utenti denominati «admin» utilizzano automaticamente i token di autenticazione dell'amministratore
-
Tutti gli altri utenti utilizzano token di autenticazione regolari
-
Il connettore genera i token in modo dinamico per ogni connessione