Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connecteur SQL Aurora pour PHP PDO_PGSQL
Le connecteur Aurora DSQL pour PHPPDO_PGSQL
Le connecteur gère la génération de jetons, la configuration SSL et la gestion des connexions afin que vous puissiez vous concentrer sur la logique de votre application.
À propos du connecteur
Le connecteur Aurora DSQL pour PHP ajoute une couche d'authentification PDO_PGSQL qui gère la génération de jetons IAM, ce qui vous permet de vous connecter à Aurora DSQL à l'aide de vos flux de travail PDO existants. Amazon Aurora DSQL nécessite une authentification IAM avec des jetons limités dans le temps, et le connecteur gère automatiquement la génération de jetons pour vous.
Qu'est-ce que l'authentification SQL Aurora ?
Dans Aurora DSQL, l’authentification implique :
-
Authentification IAM : toutes les connexions utilisent l’authentification basée sur IAM avec des jetons à durée limitée
-
Génération de jetons : le connecteur génère des jetons d'authentification à l'aide AWS d'informations d'identification, et ces jetons ont une durée de vie configurable
Le connecteur Aurora DSQL pour PHP comprend ces exigences et génère automatiquement des jetons d'authentification IAM lors de l'établissement de connexions.
Caractéristiques
-
Authentification IAM automatique : gère la génération et l'actualisation des jetons Aurora DSQL
-
Construit sur
PDO_PGSQL: intègre l'extension PostgreSQL standard pour PHP -
Intégration parfaite - Fonctionne avec les flux de travail PDO existants
-
Application du protocole SSL : utilise toujours le protocole SSL avec
verify-fullmode et négociation directe du protocole TLS -
Détection automatique des régions : extrait AWS la région du nom d'hôte du cluster Aurora DSQL
-
AWS support des identifiants : prend en charge les AWS profils et les fournisseurs d'identifiants personnalisés
-
Nouvelle tentative OCC - Réessayez de contrôler la simultanéité de manière optimiste avec recul et instabilité exponentiels
-
Journalisation PSR-3 - Journalisation compatible pour les nouvelles tentatives de diagnostic
Exemple d'application
Pour un exemple complet, consultez l'exemple d'application
Guide de démarrage rapide
Exigences
-
PHP 8.2 ou version ultérieure
-
ext-pdo_pgsqlextension -
AWS informations d'identification configurées (via la AWS CLI, les variables d'environnement ou les rôles IAM)
Installation
Ajoutez le package à votre projet :
composer require awslabs/aurora-dsql-pdo-pgsql
Usage
Connexion basée sur la configuration
<?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 de chaîne de connexion
Pour les scripts simples ou lorsque vous préférez la syntaxe des chaînes de connexion, le connecteur prend en charge postgres:// les chaînes de postgresql:// connexion avec des paramètres de requête spécifiques à Aurora DSQL :
$pdo = AuroraDsql::connectFromDsn( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws/postgres?region=us-east-1' );
Paramètres de requête pris en charge : regionprofile,tokenDurationSecs,,ormPrefix.
Réessayer OCC
Aurora DSQL utilise un contrôle de simultanéité optimiste (OCC). Lorsque deux transactions modifient les mêmes données, la première à valider gagne et la seconde reçoit une erreur OCC.
Une nouvelle tentative d'OCC est facultative. Définissez occMaxRetries dans la configuration pour activer la nouvelle tentative automatique avec un recul et une instabilité exponentiels :
$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"); });
Important
transaction()gèrebeginTransaction()/commit()/rollBack()en interne. Votre rappel ne doit contenir que des opérations de base de données et vous pouvez réessayer en toute sécurité.
Options de configuration
Le connecteur accepte également postgres:// des chaînes de postgresql:// connexion contenant des paramètres de requête pour la configuration. Paramètres de requête pris en charge : regionprofile,tokenDurationSecs, etormPrefix.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
host |
string |
(obligatoire) | Point de terminaison du cluster ou ID de cluster à 26 caractères |
region |
?string |
null(détecté automatiquement) |
AWS région ; obligatoire s'il s'hostagit d'un ID de cluster |
user |
string |
"admin" |
Utilisateur de la base de donnée |
database |
string |
"postgres" |
Nom de la base de données |
port |
int |
5432 |
Port de la base de données |
profile |
?string |
null |
AWS nom de profil pour les informations d'identification |
credentialsProvider |
?\Closure |
null |
Fournisseur d' AWS informations d'identification personnalisées |
tokenDurationSecs |
int |
900(15 minutes) |
Durée de validité du jeton en secondes |
occMaxRetries |
?int |
null(handicapé) |
Nombre maximum de tentatives OCC par défaut pour et exec() transaction() |
ormPrefix |
?string |
null |
préfixe ORM préfixé à application_name |
logger |
?LoggerInterface |
null |
Enregistreur PSR-3 pour les nouvelles tentatives, les avertissements et les diagnostics |
Authentification
Le connecteur gère automatiquement l'authentification Aurora DSQL en générant des jetons à l'aide d' AWS informations d'identification. Si vous ne fournissez pas la AWS région, le connecteur l'analyse à partir du nom d'hôte.
Pour plus d'informations sur l'authentification dans Aurora DSQL, consultezAuthentification et autorisation pour Aurora DSQL.
Administrateur et utilisateurs réguliers
-
Les utilisateurs nommés « admin » utilisent automatiquement des jetons d'authentification d'administrateur
-
Tous les autres utilisateurs utilisent des jetons d'authentification ordinaires
-
Le connecteur génère des jetons de manière dynamique pour chaque connexion