Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aurora DSQL-Konnektor für PHP PDO_PGSQL
Der Aurora DSQL Connector für PHPPDO_PGSQL
Der Connector kümmert sich um die Token-Generierung, die SSL-Konfiguration und das Verbindungsmanagement, sodass Sie sich auf Ihre Anwendungslogik konzentrieren können.
Über den Konnektor
Der Aurora DSQL Connector für PHP fügt zusätzlich eine Authentifizierungsebene hinzuPDO_PGSQL, die die Generierung von IAM-Tokens übernimmt, sodass Sie mithilfe Ihrer vorhandenen PDO-Workflows eine Verbindung zu Aurora DSQL herstellen können. Amazon Aurora DSQL erfordert eine IAM-Authentifizierung mit zeitlich begrenzten Token, und der Connector verwaltet automatisch die Token-Generierung für Sie.
Was ist Aurora DSQL-Authentifizierung?
In Aurora DSQL umfasst die Authentifizierung:
-
IAM-Authentifizierung: alle Verbindungen verwenden eine IAM-basierte Authentifizierung mit zeitlich begrenzten Token
-
Token-Generierung: Der Connector generiert Authentifizierungstoken mithilfe von AWS Anmeldeinformationen, und diese Token haben eine konfigurierbare Lebensdauer
Der Aurora DSQL Connector für PHP versteht diese Anforderungen und generiert beim Verbindungsaufbau automatisch IAM-Authentifizierungstoken.
Features
-
Automatische IAM-Authentifizierung — Übernimmt die Generierung und Aktualisierung von Aurora DSQL-Tokens
-
Built on
PDO_PGSQL— Umschließt die Standard-PostgreSQL-Erweiterung für PHP -
Nahtlose Integration — Funktioniert mit bestehenden PDO-Workflows
-
SSL-Durchsetzung — Verwendet immer SSL mit
verify-fullModus und direkter TLS-Aushandlung -
Automatische Erkennung von Regionen — Extrahiert die AWS Region aus dem Hostnamen des Aurora DSQL-Clusters
-
AWS Unterstützung für Anmeldeinformationen — Unterstützt AWS Profile und Anbieter von benutzerdefinierten Anmeldeinformationen
-
OCC-Wiederholung — Opt-in-Wiederholungsversuch mit optimistischer Parallelitätssteuerung mit exponentiellem Backoff und Jitter
-
PSR-3-Protokollierung — Kompatible Protokollierung für Wiederholungsdiagnosen
Beispiel
Ein vollständiges Beispiel finden Sie in der Beispielanwendung
Schnellstart-Anleitung
Voraussetzungen
-
PHP 8.2 oder höher
-
ext-pdo_pgsqlErweiterung -
AWS konfigurierte Anmeldeinformationen (über AWS CLI, Umgebungsvariablen oder IAM-Rollen)
Installation
Fügen Sie das Paket zu Ihrem Projekt hinzu:
composer require awslabs/aurora-dsql-pdo-pgsql
Usage
Konfigurationsbasierte Verbindung
<?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(); });
Format der Verbindungszeichenfolge
Für einfache Skripten oder wenn Sie die Syntax von Verbindungszeichenfolgen bevorzugen, unterstützt postgres:// der Konnektor postgresql:// Verbindungszeichenfolgen mit Aurora DSQL-spezifischen Abfrageparametern:
$pdo = AuroraDsql::connectFromDsn( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws/postgres?region=us-east-1' );
Unterstützte Abfrageparameter:region,,,profile. tokenDurationSecs ormPrefix
OCC-Wiederholung
Aurora DSQL verwendet Optimistic Concurrency Control (OCC). Wenn zwei Transaktionen dieselben Daten ändern, gewinnt die erste Transaktion, die einen Commit durchführt, und die zweite erhält einen OCC-Fehler.
Die OCC-Wiederholung ist optional. occMaxRetriesIn der Konfiguration so eingestellt, dass automatische Wiederholungen mit exponentiellem Backoff und Jitter aktiviert werden:
$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"); });
Wichtig
transaction()verwaltet//intern. beginTransaction() commit() rollBack() Ihr Rückruf sollte nur Datenbankoperationen enthalten und es sollte sicher sein, es erneut zu versuchen.
Konfigurationsoptionen
Der Konnektor akzeptiert postgres:// auch postgresql:// Verbindungszeichenfolgen mit Abfrageparametern für die Konfiguration. Unterstützte Abfrageparameter: regionprofile,tokenDurationSecs, undormPrefix.
| Feld | Typ | Standard | Description |
|---|---|---|---|
host |
string |
(erforderlich) | Cluster-Endpunkt oder Cluster-ID mit 26 Zeichen |
region |
?string |
null(automatisch erkannt) |
AWS Region; erforderlich, wenn host es sich um eine Cluster-ID handelt |
user |
string |
"admin" |
Datenbankbenutzer |
database |
string |
"postgres" |
Datenbankname |
port |
int |
5432 |
Datenbankport |
profile |
?string |
null |
AWS Profilname für Anmeldeinformationen |
credentialsProvider |
?\Closure |
null |
Anbieter AWS für benutzerdefinierte Anmeldeinformationen |
tokenDurationSecs |
int |
900(15 Minuten) |
Gültigkeitsdauer des Tokens in Sekunden |
occMaxRetries |
?int |
null(deaktiviert) |
Standardmäßige maximale OCC-Wiederholungsversuche für und exec() transaction() |
ormPrefix |
?string |
null |
ORM-Präfix wird vorangestellt application_name |
logger |
?LoggerInterface |
null |
PSR-3-Logger für Wiederholungswarnungen und Diagnosen |
Authentifizierung
Der Connector verarbeitet automatisch die Aurora-DSQL-Authentifizierung, indem er mithilfe von AWS Anmeldeinformationen Token generiert. Wenn Sie die AWS Region nicht angeben, analysiert der Connector sie anhand des Hostnamens.
Weitere Informationen zur Authentifizierung in Aurora DSQL finden Sie unterAuthentifizierung und Autorisierung für Aurora DSQL.
Admin im Vergleich zu normalen Benutzern
-
Benutzer mit dem Namen „admin“ verwenden automatisch Admin-Authentifizierungstoken
-
Alle anderen Benutzer verwenden reguläre Authentifizierungstoken
-
Der Connector generiert dynamisch Token für jede Verbindung