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

Der Aurora DSQL Connector für Node-Postgres ist ein Node.js Connector, der auf Node-Postgres basiert und die IAM-Authentifizierung für die Verbindung von Anwendungen mit Amazon Aurora DSQL-Clustern integriert. JavaScript/TypeScript

Der Aurora DSQL Connector ist als Authentifizierungs-Plugin konzipiert, das die Funktionalität des Clients und Pools von Node-Postgres erweitert, sodass Anwendungen sich mit Amazon Aurora DSQL mithilfe von IAM-Anmeldeinformationen authentifizieren können.

Über den Connector

Amazon Aurora DSQL ist eine Cloud-native verteilte Datenbank mit PostgreSQL-Kompatibilität. Sie erfordert zwar IAM-Authentifizierung und zeitgebundene Token, aber bei herkömmlichen Node.js Datenbanktreibern fehlt diese integrierte Unterstützung.

Der Aurora DSQL Connector für Node-Postgres schließt diese Lücke, indem er eine Authentifizierungs-Middleware implementiert, die nahtlos mit Node-Postgres zusammenarbeitet. Dieser Ansatz ermöglicht es Entwicklern, ihren bestehenden Node-Postgres-Code beizubehalten und gleichzeitig durch automatisiertes Token-Management sicheren IAM-basierten Zugriff auf Aurora DSQL-Cluster zu erhalten.

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: Authentifizierungstoken werden mithilfe von AWS-Anmeldeinformationen generiert und haben eine konfigurierbare Lebensdauer

Der Aurora DSQL Connector für Node-Postgres 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

  • Basiert auf Node-Postgres — Nutzt den beliebten PostgreSQL-Client für Node.js

  • Nahtlose Integration — Funktioniert mit bestehenden Node-Postgres-Verbindungsmustern

  • Automatische Erkennung der Region — 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 problemlos mit dem integrierten Verbindungspooling

Beispielanwendung

Im Beispiel ist eine Beispielanwendung enthalten, die zeigt, wie Aurora DSQL Connector für Node-Postgres verwendet wird. Um das mitgelieferte Beispiel auszuführen, lesen Sie bitte die README-Beispieldatei.

Schnellstartanleitung

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-node-postgres-connector

Abhängigkeiten von Kollegen

npm install @aws-sdk/credential-providers @aws-sdk/dsql-signer pg tsx npm install --save-dev @types/pg

Usage

Client-Verbindung

import { AuroraDSQLClient } from "@aws/aurora-dsql-node-postgres-connector"; const client = new AuroraDSQLClient({ host: "<CLUSTER_ENDPOINT>", user: "admin", }); await client.connect(); const result = await client.query("SELECT NOW()"); await client.end();

Pool-Verbindung

import { AuroraDSQLPool } from "@aws/aurora-dsql-node-postgres-connector"; const pool = new AuroraDSQLPool({ host: "<CLUSTER_ENDPOINT>", user: "admin", max: 3, idleTimeoutMillis: 60000, }); const result = await pool.query("SELECT NOW()");

Erweiterte Nutzung

import { fromNodeProviderChain } from "@aws-sdk/credential-providers"; import { AuroraDSQLClient } from "@aws/aurora-dsql-node-postgres-connector"; const client = new AuroraDSQLClient({ host: "example.dsql.us-east-1.on.aws", user: "admin", customCredentialsProvider: fromNodeProviderChain(), // Optionally provide custom credentials provider }); await client.connect(); const result = await client.query("SELECT NOW()"); await client.end();

Konfigurationsoptionen

Option Typ Erforderlich Beschreibung
host string Ja Hostname des DSQL-Clusters
username string Ja DSQL-Benutzername
database string Nein Datenbankname
region string Nein AWS-Region (automatisch anhand des Hostnamens erkannt, falls nicht angegeben)
port number Nein Die Standardeinstellung ist 5432
customCredentialsProvider AwsCredentialIdentity / AwsCredentialIdentityProvider Nein Anbieter für benutzerdefinierte AWS-Anmeldeinformationen
profile string Nein Der IAM-Profilname. Die Standardeinstellung ist „Standard“
tokenDurationSecs number Nein Ablaufzeit des Tokens in Sekunden

Alle anderen Parameter von Client /Pool werden 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

  • Token werden dynamisch für jede Verbindung generiert