View a markdown version of this page

Aurora DSQL-Konnektor für Postgres.js - 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 Postgres.js

Der Aurora DSQL Connector für Postgres.js ist ein Node.js Konnektor Postgres.js, der auf der IAM-Authentifizierung basiert, um JavaScript Anwendungen mit Amazon Aurora DSQL-Clustern zu verbinden.

Der Aurora DSQL Connector für Postgres.js ist als Authentifizierungs-Plugin konzipiert, das die Funktionalität des Postgres.js Clients erweitert, sodass Anwendungen sich mit Amazon Aurora DSQL mithilfe von IAM-Anmeldeinformationen authentifizieren können. Der Connector stellt keine direkte Verbindung zur Datenbank her, sondern bietet zusätzlich zum zugrunde liegenden Treiber eine nahtlose IAM-Authentifizierung. Postgres.js

Über den Connector

Amazon Aurora DSQL ist ein verteilter SQL-Datenbankservice, der hohe Verfügbarkeit und Skalierbarkeit für PostgreSQL-compatible Anwendungen bietet. Aurora DSQL erfordert eine IAM-based Authentifizierung mit zeitlich begrenzten Token, die von vorhandenen Node.js Treibern nicht nativ unterstützt werden.

Die Idee hinter dem Aurora DSQL Connector for Postgres.js besteht darin, dem Postgres.js Client eine Authentifizierungsebene hinzuzufügen, die die IAM-Token-Generierung übernimmt, sodass Benutzer eine Verbindung zu Aurora DSQL herstellen können, ohne ihre bestehenden Workflows zu ändern. Postgres.js

Der Aurora DSQL Connector für Postgres.js funktioniert mit den meisten Versionen von Postgres.js. Benutzer stellen ihre eigene Version bereit, indem sie sie Postgres.js direkt installieren.

Was ist Aurora DSQL-Authentifizierung?

In Aurora DSQL umfasst die Authentifizierung:

  • IAM-Authentifizierung: Alle Verbindungen verwenden eine IAM-based Authentifizierung mit zeitlich begrenzten Token

  • Token-Generierung: Authentifizierungstoken werden mithilfe von AWS-Anmeldeinformationen generiert und haben konfigurierbare Lebensdauern

Der Aurora DSQL Connector für Postgres.js wurde entwickelt, um diese Anforderungen zu verstehen und beim Verbindungsaufbau automatisch IAM-Authentifizierungstoken zu generieren.

Features

  • Automatische IAM-Authentifizierung — Übernimmt die Generierung und Aktualisierung von DSQL-Tokens

  • Basierend auf Postgres.js — Nutzt den schnellen PostgreSQL-Client für Node.js

  • Nahtlose Integration — Funktioniert mit bestehenden Verbindungsmustern Postgres.js

  • Region Auto-Discovery — Extrahiert die AWS-Region aus dem DSQL-Cluster-Hostnamen

  • TypeScript Umfassender Support — bietet volle Typsicherheit

  • Support für AWS-Anmeldeinformationen — Unterstützt verschiedene AWS-Anmeldeinformationsanbieter (Standard, profilbasiert, benutzerdefiniert)

  • Kompatibilität mit Verbindungspooling — Funktioniert nahtlos mit dem Postgres.js integrierten Verbindungspooling

Schnellstart-Anleitung

Voraussetzungen

  • Node.js 20+

  • Zugriff auf einen Aurora DSQL-Cluster

  • Richten Sie die entsprechenden IAM-Berechtigungen ein, damit Ihre Anwendung eine Verbindung zu Aurora DSQL herstellen kann.

  • AWS-Anmeldeinformationen konfiguriert (über AWS-CLI, Umgebungsvariablen oder IAM-Rollen)

Installation

npm install @aws/aurora-dsql-postgresjs-connector # Postgres.js is a peer-dependency, so users must install it themselves npm install postgres

Grundlegende Verwendung

import { auroraDSQLPostgres } from '@aws/aurora-dsql-postgresjs-connector'; const sql = auroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', username: 'admin', }); // Execute queries const result = await sql`SELECT current_timestamp`; console.log(result); // Clean up await sql.end();

Cluster-ID anstelle von Host verwenden

const sql = auroraDSQLPostgres({ host: 'your-cluster-id', region: 'us-east-1', username: 'admin', });

Verbindungszeichenfolge

const sql = AuroraDSQLPostgres( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws' ); const result = await sql`SELECT current_timestamp`;

Erweiterte Konfiguration

import { fromNodeProviderChain } from '@aws-sdk/credential-providers'; const sql = AuroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', database: 'postgres', username: 'admin', customCredentialsProvider: fromNodeProviderChain(), // Optionally provide custom credentials provider tokenDurationSecs: 3600, // Token expiration (seconds) // Standard Postgres.js options max: 20, // Connection pool size ssl: { rejectUnauthorized: false } // SSL configuration });

Konfigurationsoptionen

Option Typ Erforderlich Beschreibung
host string Ja Hostname oder Cluster-ID des DSQL-Clusters
database string? Nein Datenbankname
username string? Nein Datenbank-Benutzername (verwendet admin, falls nicht angegeben)
region string? Nein AWS-Region (automatisch anhand des Hostnamens erkannt, falls nicht angegeben)
customCredentialsProvider AwsCredentialIdentityProvider? Nein Anbieter für benutzerdefinierte AWS-Anmeldeinformationen
tokenDurationSecs number? Nein Ablaufzeit des Tokens in Sekunden

Alle Postgres.jsStandardoptionen werden ebenfalls unterstützt.

Authentifizierung

Der Connector verarbeitet die DSQL-Authentifizierung automatisch, indem er mithilfe des DSQL-Client-Token-Generators Token generiert. Wenn die AWS-Region nicht angegeben wird, wird sie automatisch anhand des angegebenen Hostnamens analysiert.

Weitere Informationen zur Authentifizierung in Aurora DSQL finden Sie im Benutzerhandbuch.

Admin im Vergleich zu regulären Benutzern

  • Benutzer mit dem Namen „admin“ verwenden automatisch Admin-Authentifizierungstoken

  • Alle anderen Benutzer verwenden reguläre Authentifizierungstoken

  • Tokens werden dynamisch für jede Verbindung generiert

Beispiel für die Verwendung

JavaScript Beispiele, die den Aurora DSQL Connector für verwenden, Postgres.js finden Sie unter GitHub. Anweisungen zur Ausführung der Beispiele finden Sie im Beispielverzeichnis.

Description Beispiel
Verbindungspooling mit gleichzeitigen Abfragen, einschließlich Tabellenerstellung, Einfügungen und Lesevorgängen für mehrere Worker Beispiel für einen Verbindungspool (bevorzugt)
CRUD-Operationen (Tabelle erstellen, einfügen, auswählen, löschen) ohne Verbindungspooling Beispiel ohne Verbindungspool