View a markdown version of this page

Konektor Aurora DSQL untuk PHP PDO_PGSQL - Amazon Aurora DSQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konektor Aurora DSQL untuk PHP PDO_PGSQL

Konektor Aurora DSQL untuk PHP adalah konektor PHP yang dibangun di atas PDO_PGSQLyang mengintegrasikan otentikasi IAM untuk menghubungkan aplikasi PHP ke cluster Amazon Aurora DSQL.

Konektor menangani pembuatan token, konfigurasi SSL, dan manajemen koneksi sehingga Anda dapat fokus pada logika aplikasi Anda.

Tentang konektornya

Konektor Aurora DSQL untuk PHP menambahkan lapisan otentikasi di atasnya PDO_PGSQL yang menangani pembuatan token IAM, memungkinkan Anda untuk terhubung ke Aurora DSQL menggunakan alur kerja PDO yang ada. Amazon Aurora DSQL memerlukan otentikasi IAM dengan token terbatas waktu, dan konektor secara otomatis mengelola pembuatan token untuk Anda.

Apa itu otentikasi Aurora DSQL?

Dalam Aurora DSQL, otentikasi melibatkan:

  • Otentikasi IAM: Semua koneksi menggunakan otentikasi berbasis IAM dengan token terbatas waktu

  • Generasi Token: Konektor menghasilkan token otentikasi menggunakan AWS kredensyal, dan token ini memiliki masa pakai yang dapat dikonfigurasi

Konektor Aurora DSQL untuk PHP memahami persyaratan ini dan secara otomatis menghasilkan token otentikasi IAM saat membuat koneksi.

Fitur

  • Otentikasi IAM otomatis - Menangani pembuatan dan penyegaran token Aurora DSQL

  • Dibangun di atas PDO_PGSQL - Membungkus ekstensi PostgreSQL standar untuk PHP

  • Integrasi mulus - Bekerja dengan alur kerja PDO yang ada

  • Penegakan SSL - Selalu menggunakan SSL dengan verify-full mode dan negosiasi TLS langsung

  • Deteksi otomatis wilayah - Ekstrak AWS wilayah dari nama host cluster Aurora DSQL

  • AWS dukungan kredensyal - Mendukung AWS profil dan penyedia kredensyal khusus

  • Coba lagi OCC - Coba lagi kontrol konkurensi optimis dengan backoff eksponensial dan jitter

  • Pencatatan PSR-3 - Pencatatan yang kompatibel untuk diagnostik coba lagi

Contoh aplikasi

Untuk contoh lengkap, lihat contoh aplikasi di GitHub.

Panduan memulai cepat

Persyaratan

  • PHP 8.2 atau yang lebih baru

  • ext-pdo_pgsqlperpanjangan

  • Akses ke cluster Aurora DSQL

  • AWS kredensyal yang dikonfigurasi (melalui AWS CLI, variabel lingkungan, atau peran IAM)

Penginstalan

Tambahkan paket ke proyek Anda:

composer require awslabs/aurora-dsql-pdo-pgsql

Penggunaan

Koneksi berbasis konfigurasi

<?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 string koneksi

Untuk skrip sederhana atau ketika Anda lebih suka sintaks string koneksi, konektor mendukung postgres:// dan postgresql:// koneksi string dengan parameter kueri khusus Aurora DSQL:

$pdo = AuroraDsql::connectFromDsn( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws/postgres?region=us-east-1' );

Parameter kueri yang didukung: regionprofile,tokenDurationSecs,,ormPrefix.

Coba lagi OCC

Aurora DSQL menggunakan kontrol konkurensi optimis (OCC). Ketika dua transaksi memodifikasi data yang sama, yang pertama melakukan kemenangan dan yang kedua menerima kesalahan OCC.

Coba lagi OCC adalah opt-in. Setel occMaxRetries dalam konfigurasi untuk mengaktifkan percobaan ulang otomatis dengan backoff dan jitter eksponensial:

$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"); });
penting

transaction()mengelolabeginTransaction()/commit()/rollBack()secara internal. Callback Anda seharusnya hanya berisi operasi database dan aman untuk dicoba lagi.

Opsi konfigurasi

Konektor juga menerima postgres:// dan postgresql:// menghubungkan string dengan parameter kueri untuk konfigurasi. Parameter kueri yang didukung: regionprofile,tokenDurationSecs,, danormPrefix.

Bidang Tipe Default Deskripsi
host string (wajib) Titik akhir cluster atau ID cluster 26-char
region ?string null(terdeteksi otomatis) AWS wilayah; diperlukan jika host adalah ID cluster
user string "admin" Pengguna basis data
database string "postgres" Nama basis data
port int 5432 Port basis data
profile ?string null AWS nama profil untuk kredensyal
credentialsProvider ?\Closure null Penyedia AWS kredensyal kustom
tokenDurationSecs int 900(15 menit) Durasi validitas token dalam hitungan detik
occMaxRetries ?int null(dinonaktifkan) Percobaan ulang OCC maks default untuk dan exec() transaction()
ormPrefix ?string null Awalan ORM diawali application_name
logger ?LoggerInterface null PSR-3 logger untuk peringatan dan diagnostik coba lagi

Autentikasi

Konektor secara otomatis menangani otentikasi Aurora DSQL dengan menghasilkan token menggunakan kredensyal. AWS Jika Anda tidak memberikan AWS wilayah, konektor menguraikannya dari nama host.

Untuk informasi lebih lanjut tentang otentikasi di Aurora DSQL, lihat. Otentikasi dan otorisasi untuk Aurora DSQL

Admin vs pengguna biasa

  • Pengguna bernama “admin” secara otomatis menggunakan token otentikasi admin

  • Semua pengguna lain menggunakan token otentikasi reguler

  • Konektor menghasilkan token secara dinamis untuk setiap koneksi