View a markdown version of this page

Connecteur SQL Aurora pour PHP PDO_PGSQL - Amazon Aurora DSQL

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 PHP est un connecteur PHP intégré PDO_PGSQLqui intègre l'authentification IAM pour connecter des applications PHP aux clusters Amazon Aurora DSQL.

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-full mode 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 sur GitHub.

Guide de démarrage rapide

Exigences

  • PHP 8.2 ou version ultérieure

  • ext-pdo_pgsqlextension

  • Accès à un cluster SQL Aurora

  • 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