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
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+
-
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
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 |