View a markdown version of this page

Aurora DSQL-Konnektor für PHP PDO_PGSQL - Amazon Aurora DSQL

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 PHP ist ein PHP-Connector PDO_PGSQL, der auf der IAM-Authentifizierung für die Verbindung von PHP-Anwendungen mit Amazon Aurora DSQL-Clustern basiert.

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-full Modus 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 unter. GitHub

Schnellstart-Anleitung

Voraussetzungen

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