Connecteur SQL Aurora pour Postgres.js - 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 Postgres.js

Le connecteur Aurora DSQL pour Postgres.js est un connecteur Node.js basé sur Postgres.js qui intègre l'authentification IAM pour connecter des JavaScript applications aux clusters Amazon Aurora DSQL.

Le connecteur Aurora DSQL pour Postgres.js est conçu comme un plug-in d'authentification qui étend les fonctionnalités du client Postgres.js afin de permettre aux applications de s'authentifier auprès d'Amazon Aurora DSQL à l'aide des informations d'identification IAM. Le connecteur ne se connecte pas directement à la base de données, mais fournit une authentification IAM fluide en plus du pilote Postgres.js sous-jacent.

À propos du connecteur

Amazon Aurora DSQL est un service de base de données SQL distribué qui fournit une disponibilité et une évolutivité élevées aux applications compatibles avec PostgreSQL. Aurora DSQL nécessite une authentification basée sur IAM avec des jetons limités dans le temps que les pilotes Node.js existants ne prennent pas en charge de manière native.

L'idée du connecteur Aurora DSQL pour Postgres.js est d'ajouter une couche d'authentification au-dessus du client Postgres.js qui gère la génération de jetons IAM, permettant aux utilisateurs de se connecter à Aurora DSQL sans modifier leurs flux de travail Postgres.js existants.

Le connecteur Aurora DSQL pour Postgres.js fonctionne avec la plupart des versions de Postgres.js. Les utilisateurs fournissent leur propre version en installant directement Postgres.js.

Qu’est-ce que l’authentification Aurora DSQL ?

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 : les jetons d'authentification sont générés à l'aide des informations d'identification AWS et ont une durée de vie configurable

Le connecteur Aurora DSQL pour Postgres.js est conçu pour comprendre ces exigences et générer 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 DSQL

  • Construit sur Postgres.js : exploite le client rapide PostgreSQL pour Node.js

  • Intégration parfaite - Fonctionne avec les modèles de connexion Postgres.js existants

  • Découverte automatique des régions : extrait la région AWS du nom d'hôte du cluster DSQL

  • TypeScript Support complet - Assure une sécurité totale du type

  • Support des informations d'identification AWS : prend en charge différents fournisseurs d'informations d'identification AWS (par défaut, basé sur le profil, personnalisé)

  • Compatibilité avec le regroupement de connexions - Fonctionne parfaitement avec le regroupement de connexions intégré à Postgres.js

Guide de démarrage rapide

Exigences

  • Node.js 20+

  • Accès à un cluster SQL Aurora

  • Configuration des autorisations IAM appropriées pour permettre à votre application de se connecter à Aurora DSQL.

  • Informations d'identification AWS configurées (via l'interface de ligne de commande AWS, les variables d'environnement ou les rôles IAM)

Installation

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

Utilisation de base

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();

Utilisation de l'ID du cluster au lieu de l'hôte

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

Chaîne de connexion

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

Configuration avancée

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 });

Options de configuration

Option Type Obligatoire Description
host string Oui Nom d'hôte ou ID de cluster DSQL
database string? Non Nom de la base de données
username string? Non Nom d'utilisateur de la base de données (utilise admin s'il n'est pas fourni)
region string? Non Région AWS (détectée automatiquement à partir du nom d'hôte s'il n'est pas fourni)
customCredentialsProvider AwsCredentialIdentityProvider? Non Fournisseur d'informations d'identification AWS personnalisées
tokenDurationSecs number? Non Délai d'expiration du jeton en secondes

Toutes les options standard de Postgres.js sont également prises en charge.

Authentification

Le connecteur gère automatiquement l'authentification DSQL en générant des jetons à l'aide du générateur de jetons du client DSQL. Si la région AWS n'est pas fournie, elle sera automatiquement analysée à partir du nom d'hôte fourni.

Pour plus d'informations sur l'authentification dans Aurora DSQL, consultez le guide de l'utilisateur.

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

  • Les jetons sont générés dynamiquement pour chaque connexion

Utilisation de l'échantillon

JavaScript des exemples utilisant le connecteur Aurora DSQL pour Postgres.js sont disponibles sur GitHub. Pour obtenir des instructions sur la façon d'exécuter les exemples, reportez-vous au répertoire des exemples.

Description Exemple
Regroupement de connexions avec requêtes simultanées, y compris la création de tables, les insertions et les lectures entre plusieurs travailleurs Exemple de pool de connexions (préféré)
Opérations CRUD (création de table, insertion, sélection, suppression) sans regroupement de connexions Exemple sans pool de connexions