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 PHP PDO_PGSQL
L'Aurora DSQL Connector per PHP è un connettore PHPPDO_PGSQL
Il connettore gestisce la generazione di token, la configurazione SSL e la gestione delle connessioni in modo che tu possa concentrarti sulla logica dell'applicazione.
Informazioni sul connettore
L'Aurora DSQL Connector per PHP aggiunge un livello di autenticazione PDO_PGSQL che gestisce la generazione di token IAM, consentendoti di connetterti ad Aurora DSQL utilizzando i flussi di lavoro PDO esistenti. Amazon Aurora DSQL richiede l'autenticazione IAM con token a tempo limitato e il connettore gestisce automaticamente la generazione di token per te.
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 per PHP comprende questi requisiti e genera automaticamente token di autenticazione IAM quando stabilisce connessioni.
Funzionalità
-
Autenticazione IAM automatica: gestisce la generazione e l'aggiornamento dei token Aurora DSQL
-
Costruito su
PDO_PGSQL: racchiude l'estensione PostgreSQL standard per PHP -
Integrazione perfetta: funziona con i flussi di lavoro PDO esistenti
-
Applicazione SSL: utilizza sempre SSL con
verify-fullnegoziazione TLS modale e diretta -
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 simultaneo con backoff e jitter esponenziali
-
Registrazione PSR-3: registrazione compatibile per la diagnostica dei nuovi tentativi
Applicazione di esempio
Per un esempio completo, vedi l'applicazione di esempio
Guida rapida di avvio
Requisiti
-
PHP 8.2 o successivo
-
ext-pdo_pgsqlestensione -
AWS credenziali configurate (tramite AWS CLI, variabili di ambiente o ruoli IAM)
Installazione
Aggiungi il pacchetto al tuo progetto:
composer require awslabs/aurora-dsql-pdo-pgsql
Utilizzo
Connessione basata sulla configurazione
<?php require_once 'vendor/autoload.php'; use Aws\AuroraDsql\PdoPgsql\AuroraDsql; use Aws\AuroraDsql\PdoPgsql\DsqlConfig; $config = new DsqlConfig( host: 'your-cluster.dsql.us-east-1.on.aws', occMaxRetries: 3 ); $pdo = AuroraDsql::connect($config); // Read $stmt = $pdo->query('SELECT 1 AS result'); $row = $stmt->fetch(PDO::FETCH_ASSOC); echo "Connected: {$row['result']}\n"; // Transactional write with automatic OCC retry $id = $pdo->transaction(function (PDO $conn): string { $stmt = $conn->prepare('INSERT INTO users (name) VALUES (?) RETURNING id'); $stmt->execute(['Alice']); return $stmt->fetchColumn(); });
Formato della stringa di connessione
Per script semplici o quando si preferisce la sintassi della stringa di connessione, il connettore supporta postgres:// stringhe di postgresql:// connessione con parametri di query specifici di Aurora DSQL:
$pdo = AuroraDsql::connectFromDsn( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws/postgres?region=us-east-1' );
Parametri di interrogazione supportati:,,,. region profile tokenDurationSecs ormPrefix
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:
$config = new DsqlConfig( host: 'your-cluster.dsql.us-east-1.on.aws', occMaxRetries: 3 ); $pdo = AuroraDsql::connect($config); // Single statements are automatically retried via exec() $pdo->exec("CREATE INDEX ASYNC ON users (email)"); // Multi-statement transactions are retried via transaction() $pdo->transaction(function (PDO $conn) { $conn->exec("UPDATE accounts SET balance = balance - 100 WHERE id = 1"); $conn->exec("UPDATE accounts SET balance = balance + 100 WHERE id = 2"); });
Importante
transaction()rollBack()gestisce/internamente. beginTransaction() commit() Il callback dovrebbe contenere solo le operazioni del database ed essere sicuro di riprovare.
Opzioni di configurazione
Il connettore accetta postgres:// anche stringhe di postgresql:// connessione con parametri di interrogazione per la configurazione. Parametri di interrogazione supportati: regionprofile,tokenDurationSecs, eormPrefix.
| Campo | Tipo | Predefinita | Description |
|---|---|---|---|
host |
string |
(obbligatorio) | Endpoint del cluster o ID del cluster a 26 caratteri |
region |
?string |
null(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 |
credentialsProvider |
?\Closure |
null |
fornitore di AWS credenziali personalizzate |
tokenDurationSecs |
int |
900(15 min) |
Durata della validità del token in secondi |
occMaxRetries |
?int |
null(disabilitato) |
Numero massimo di tentativi OCC predefinito per e exec() transaction() |
ormPrefix |
?string |
null |
Prefisso ORM preceduto da application_name |
logger |
?LoggerInterface |
null |
Logger PSR-3 per avvisi e diagnosi di nuovi tentativi |
Autenticazione
Il connettore gestisce automaticamente l'autenticazione Aurora DSQL generando token utilizzando credenziali. AWS Se non fornisci 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