View a markdown version of this page

Connettore Aurora DSQL per PHP PDO_PGSQL - 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 PHP PDO_PGSQL

L'Aurora DSQL Connector per PHP è un connettore PHP basato su PDO_PGSQLche integra l'autenticazione IAM per connettere le applicazioni PHP ai cluster DSQL di Amazon Aurora.

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-full negoziazione 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 su GitHub.

Guida rapida di avvio

Requisiti

  • PHP 8.2 o successivo

  • ext-pdo_pgsqlestensione

  • Accesso a un cluster Aurora DSQL

  • 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