Catégorie > High Tech

Configurer AWS Lambda pour se connecter à une instance RDS et écrire des données dans des tables

Posté par Dino, mise à jour le 25/05/2026 à 10:56:21

Connecter AWS Lambda à une instance AWS RDS vous permet de créer des applications serverless pouvant interagir avec des bases de données relationnelles, vous permettant ainsi de gérer les opérations de base de données sans provisionner ni gérer de serveurs. Ce guide complet vous guide étape par étape dans le processus de configuration d’AWS Lambda pour se connecter à une instance RDS et écrire des données dans des tables.

Prérequis


Avant d’entrer dans les étapes, assurez-vous d’avoir pris en compte les prérequis suivants :

1. Un compte AWS
2. Une instance AWS RDS existante en cours d’exécution
3. Connaissances de base des services AWS, en particulier Lambda et RDS
4. Familiarité avec SQL et le langage de programmation que vous choisissez pour la fonction Lambda (par exemple, Python, Node.js)

Étape 1 : Configurez votre instance AWS RDS


Tout d’abord, assurez-vous que votre instance AWS RDS est correctement configurée et accessible. Lors de la configuration de votre instance RDS :

* Choisissez une instance accessible au public pour une connectivité facile, bien que pour les environnements de production, une instance privée soit recommandée pour des raisons de sécurité.
* Note le point de terminaison, le port et les identifiants car tu auras besoin de ces éléments pour te connecter depuis ta fonction Lambda.

Étape 2 : Créer un rôle IAM pour Lambda


AWS Lambda nécessite des autorisations pour accéder à d’autres services AWS, y compris RDS. Vous y parvenez en créant un rôle IAM en suivant les étapes suivantes :

1. Naviguez vers la console IAM dans AWS.
2. Cliquez sur « Rôles » puis sur « Créer un rôle ».
3. Sélectionnez « Lambda » comme cas d’usage.
4. Attachez des politiques accordant les autorisations nécessaires. Pour l’accès RDS, la politique peut être un bon début, mais adaptez les autorisations à vos besoins pour une meilleure sécurité.AmazonRDSDataFullAccess
5. Nomme ton rôle et crée-le.

Étape 3 : Préparez votre fonction Lambda


Choisissez votre langage de programmation préféré (par exemple, Python ou Node.js) et préparez votre code de fonction. Voici un exemple simple en Python qui se connecte à une instance RDS et insère des données dans une table :
Code Python
import pymysql



def lambda_handler(event, context):

    connection = pymysql.connect(host='your_rds_endpoint',

                                 user='your_username',

                                 password='your_password',

                                 db='your_database_name',

                                 charset='utf8mb4',

                                 cursorclass=pymysql.cursors.DictCursor)



    try:

        with connection.cursor() as cursor:

            sql = "INSERT INTO `your_table` (`column1`, `column2`) VALUES (%s, %s)"

            cursor.execute(sql, ('data1', 'data2'))

        connection.commit()

    finally:

        connection.close()


Remplacez les placeholders par les détails réels de votre instance RDS et le schéma de table.

Étape 4 : Créez votre fonction Lambda dans AWS


1. Allez sur la console AWS Lambda et cliquez sur « Créer une fonction ».
2. Nommez votre fonction, sélectionnez l’exécution correspondant à votre langage de programmation, puis choisissez le rôle IAM créé précédemment.
3. Collez votre code de fonction dans l’éditeur de code en ligne ou téléchargez-le en fichier .zip si votre projet est plus complexe.
4. Ajustez les paramètres de base comme le temps d’attente et la mémoire en fonction des exigences de votre fonction.

Étape 5 : Ajustez les paramètres du VPC pour Lambda


Pour que votre fonction Lambda accède à une instance RDS non accessible publiquement :

1. Dans la configuration de votre fonction Lambda, allez dans les paramètres « VPC ».
2. Sélectionnez le VPC où se trouve votre instance RDS.
3. Attribuer des sous-réseaux et groupes de sécurité appropriés ayant accès à l’instance RDS.

Étape 6 : Testez votre fonction Lambda


1. Configurez un événement de test dans la console Lambda avec toutes les entrées nécessaires à votre fonction.
2. Invoquez votre fonction Lambda via l’événement de test et surveillez le résultat d’exécution ainsi que les journaux pour détecter toute erreur ou confirmation d’exécution réussie.

Étape 7 : Surveillance et journalisation


AWS Lambda s’intègre à CloudWatch, vous permettant de surveiller les exécutions et les sorties de journaux. Vérifiez les journaux CloudWatch si vous rencontrez des problèmes ou si vous devez vérifier les opérations.

Étape 8 : Meilleures pratiques


* Sécurité : Utilisez toujours des variables d’environnement pour stocker des informations sensibles comme les identifiants de base de données. De plus, envisagez d’utiliser AWS Secrets Manager.
Gestion des erreurs : Mettez en place une gestion robuste des erreurs dans votre fonction Lambda pour gérer les problèmes de connectivité, les délais d’attente ou les incohérences de données.
* Performance : Optimisez votre fonction Lambda pour les performances en ajustant la mémoire, les paramètres de timeout et en comprenant le phénomène du démarrage à froid.
* Gestion des connexions : Utilisez le pooling de connexions ou gérez-les efficacement pour éviter d’envahir votre base de données avec des connexions.

Exemple : Écrire des données en RDS à partir de Lambda


Considérons un scénario où vous avez une table dans votre base de données RDS, et vous souhaitez insérer un nouvel enregistrement utilisateur :users

Code MySql

CREATE TABLE users (

    id INT AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(50),

    email VARCHAR(50)

);


Votre fonction Lambda (en supposant Python et PyMySQL) pourrait ressembler à ceci :

Python

import pymysql
import os

def lambda_handler(event, context):
# Database connection parameters
rds_host = os.environ['RDS_HOST']
name = os.environ['DB_USERNAME']
password = os.environ['DB_PASSWORD']
db_name = os.environ['DB_NAME']

try:
conn = pymysql.connect(host=rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)
except pymysql.MySQLError as e:
print(e)
return {
'statusCode': 500,
'body': 'Could not connect to RDS'
}

with conn.cursor() as cur:
cur.execute("INSERT INTO users (username, email) VALUES (%s, %s)", ('JohnDoe', 'john.doe@example.com'))
conn.commit()

return {
'statusCode': 200,
'body': 'Successfully inserted data into RDS database'
}



Remplacez , , et par les noms réels des tables et des colonnes dans votre base de données.usersusernameemail

Conclusion


En suivant ces étapes, vous avez réussi à configurer une fonction AWS Lambda sans serveur qui se connecte à une instance AWS RDS et écrit les données dans des tables. Cette configuration vous permet de créer des applications évolutives et sans serveur capables d’interagir avec des bases de données relationnelles, exploitant ainsi toute la puissance des services cloud AWS.

N’oubliez pas, bien que ce guide fournisse une base, il faut toujours adapter votre implémentation aux besoins spécifiques et aux exigences de sécurité de votre application. Bon codage !



Ajouter une réponse

Votre message :

:

Votre prénom:

Votre email:

:



A voir aussi :

Les dernières discussions:



Qui est Réponse Rapide?

Réponse rapide est un site internet communautaire. Son objectif premier est de permettre à ses membres et visiteurs de poser leurs questions et d’avoir des réponses en si peu de temps.

Quelques avantages de réponse rapide :

Vous n’avez pas besoins d’être inscrit pour poser ou répondre aux questions.
Les réponses et les questions des visiteurs sont vérifiées avant leurs publications.
Parmi nos membres, des experts sont là pour répondre à vos questions.
Vous posez vos questions et vous recevez des réponses en si peu de temps.

Note :

En poursuivant votre navigation, vous acceptez l'utilisation de cookies. En savoir plus