Développeur Node.js serverless sur AWS Lambda : DynamoDB, SQS, cold start

En serverless, le code Node.js tourne dans des fonctions qu'AWS démarre, arrête et relance à sa guise. L'entretien porte sur les conséquences : démarrages à froid, événements reçus deux fois, limites de durée, connexions à la base et facture.

Recevoir la fiche complète

Mis à jour le Par l'équipe Delectus5 min de lecture

La fiche Développeur Node.js serverless : technologies, chaîne du poste, une question et la grille d'évaluation

Le développeur Node.js serverless écrit des fonctions AWS Lambda en TypeScript, reliées à API Gateway, DynamoDB, SQS, EventBridge ou Step Functions, et décrit l'infrastructure avec le CDK, SAM, le Serverless Framework, SST ou Terraform. Les offres le cherchent sous le titre de développeur Node.js ou TypeScript, avec la mention AWS Lambda. Pour un entretien technique serverless, regardez autant l'architecture des événements que le code des fonctions.

Un bon développeur Express n'est pas forcément à l'aise ici. Dans une API classique, le serveur tourne en continu, garde ses connexions et traite chaque requête une fois. En serverless, l'environnement peut disparaître entre deux appels, un message SQS peut arriver deux fois, une base PostgreSQL peut saturer quand des centaines de fonctions se connectent en même temps. Demandez un incident vécu et la façon dont il a été corrigé.

Vérifiez aussi que les connaissances sont à jour. Le runtime Node.js 20 est déprécié depuis avril 2026 et Node.js 24 n'accepte plus les handlers à callback. Le PDF contient l'entretien complet en 30 questions, un cas de 20 minutes et une grille de 1 à 4.

Les services AWS d'un développeur Node.js serverless

AWS Lambda

Le service qui exécute le code à la demande, sans serveur à gérer. AWS facture le nombre d'appels et le temps d'exécution selon la mémoire choisie, jusqu'à 15 minutes par invocation. Les runtimes Node.js actuels sont nodejs22.x et nodejs24.x. AWS appelle désormais ces fonctions Event Functions, pour les distinguer des Web Functions, qui font tourner un serveur Node.js classique.

API Gateway

La porte d'entrée HTTP des fonctions. Il existe deux types d'API : HTTP API, plus simple et moins chère, et REST API, plus complète (clés d'API, validation, cache). L'authentification des utilisateurs et la limitation du débit se règlent souvent à cet endroit.

DynamoDB

La base NoSQL managée d'AWS, souvent choisie avec Lambda. On ne l'interroge pas comme une base SQL : les clés se choisissent à partir des requêtes dont l'application a besoin. Une mauvaise modélisation se paie en lenteur et en facture, et se corrige difficilement une fois en production.

SQS, SNS et EventBridge

La messagerie entre fonctions. SQS est une file d'attente, SNS diffuse un message à plusieurs abonnés, EventBridge route des événements selon leur contenu. Tous peuvent livrer un message plus d'une fois, donc le code doit savoir traiter un doublon.

Step Functions et durable functions

Deux façons d'enchaîner plusieurs étapes avec reprise en cas d'erreur. Step Functions décrit le flux comme un graphe, visible dans la console. Les durable functions de Lambda l'écrivent directement en TypeScript, avec des points de reprise, sur une durée qui peut aller jusqu'à un an.

CDK, SAM, Serverless Framework, SST, Terraform

Les outils qui décrivent et déploient l'infrastructure. Le CDK et SAM produisent du CloudFormation. Le Serverless Framework v4 est payant au-delà de 2 millions de dollars de chiffre d'affaires annuel, SST v3 repose sur Pulumi. Demandez lequel la personne a utilisé et ce qu'elle en a retenu.

esbuild et SDK AWS v3

Le paquet déployé doit rester léger pour démarrer vite. esbuild compile le TypeScript et retire le code inutile. Le SDK JavaScript v3 permet d'importer seulement le client d'un service (DynamoDB, S3) au lieu du SDK entier.

CloudWatch, X-Ray et Powertools

CloudWatch garde les logs et les métriques, X-Ray suit une requête d'un service à l'autre. Powertools for AWS Lambda, en TypeScript, fournit des logs structurés, des traces, des métriques, la gestion des lots SQS en échec et l'idempotence.

IAM et secrets

Chaque fonction a un rôle qui fixe ce qu'elle peut lire ou écrire. Le principe est de lui donner le minimum. Les mots de passe et les clés d'API sont rangés dans Secrets Manager ou Parameter Store.

Les postes serverless se trouvent dans des équipes produit qui ont choisi AWS pour ne pas gérer de serveurs, et dans des équipes plateforme qui relient des services par des événements. Le développeur y écrit le code des fonctions et, le plus souvent, l'infrastructure qui va avec, ce qui le rapproche d'un profil DevOps. Les offres mentionnent souvent Terraform ou le CDK à côté de Node.js et TypeScript. Un profil venu d'Express ou de NestJS connaît le langage, il doit montrer qu'il sait raisonner en événements. Un profil venu de l'infrastructure connaît AWS, il doit montrer un code Node.js testé et maintenable. La certification AWS Developer Associate atteste la connaissance des services, l'entretien vérifie l'expérience de production.

Six savoir-faire serverless à contrôler

  • Modèle d'exécution Lambda et démarrage à froid
  • API Gateway et conception d'API serverless
  • Modélisation et accès DynamoDB
  • Événements, files et orchestration
  • Infrastructure as code, tests et déploiement
  • Observabilité, IAM et maîtrise des coûts

Cold start, SQS, DynamoDB : questions pour un développeur Lambda

Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.

  1. Question 1 · confirmé

    Les premiers appels de la matinée mettent deux secondes à répondre, les suivants 80 ms. Comment réduisez-vous l'écart ?

    Une bonne réponseC'est le démarrage à froid : Lambda crée un environnement d'exécution et lance le code d'initialisation. Il réduit le paquet avec esbuild et le tree-shaking, importe seulement les clients modulaires du SDK v3, écarte les dépendances lourdes, initialise les clients hors du handler avec un top-level await en ESM. Plus de mémoire donne plus de CPU et raccourcit l'initialisation, arm64 aide aussi. Pour une route critique, de la concurrence provisionnée, en connaissant son coût.

    Signal d'alerteUn appel planifié toutes les cinq minutes « pour garder la fonction chaude » comme seule solution, alors qu'il ne réchauffe qu'un environnement. Ne jamais avoir mesuré la durée d'initialisation.

  2. Question 2 · confirmé

    Une Lambda lit des messages SQS par lots de dix. Un message mal formé fait échouer le lot, et les neuf autres sont retraités en boucle. Comment corrigez-vous ?

    Une bonne réponseActiver ReportBatchItemFailures sur l'event source mapping et renvoyer batchItemFailures avec les seuls messages en échec, ou utiliser le BatchProcessor de Powertools for AWS Lambda. Une file de messages en échec avec un maxReceiveCount dans la redrive policy. Un délai de visibilité de la file nettement supérieur au timeout de la fonction, AWS conseille six fois. Les messages peuvent revenir, donc le traitement est idempotent.

    Signal d'alerteTout attraper et renvoyer un succès, ce qui fait disparaître le message sans trace. Ou passer à des lots d'un message comme seule correction.

  3. Question 3 · confirmé

    Vous stockez des clients et leurs commandes dans DynamoDB, et vous devez lister les commandes d'un client par date. Comment définissez-vous les clés ?

    Une bonne réponseIl part des accès dont l'application a besoin. Une clé de partition CUSTOMER#id et une clé de tri ORDER#date#id, puis un Query avec begins_with ou between, déjà trié. Un index secondaire global pour un autre accès, par exemple les commandes par statut. Pas de Scan dans le chemin normal, attention aux partitions trop sollicitées et à la limite de 400 Ko par élément.

    Signal d'alerteUne table par entité comme en SQL et des « jointures » refaites dans le code, ou un Scan avec un filtre.

  4. Question 4 · senior

    Un paiement a été traité deux fois parce qu'un événement EventBridge est arrivé en double. Comment rendez-vous la fonction idempotente ?

    Une bonne réponseEventBridge, SQS standard et les invocations asynchrones livrent au moins une fois. Il choisit une clé d'idempotence (l'identifiant de l'événement ou un identifiant métier) et l'enregistre par une écriture conditionnelle dans DynamoDB (attribute_not_exists), ou avec l'utilitaire Idempotency de Powertools et une durée de vie. Il transmet aussi une clé d'idempotence au prestataire de paiement quand celui-ci le permet.

    Signal d'alerte« Ça n'arrive pas », ou un GetItem suivi d'un PutItem pour vérifier si l'événement a déjà été traité.

  5. Question 5 · senior

    Lors d'un pic, la Lambda qui écrit dans PostgreSQL épuise les connexions de la base. Que faites-vous ?

    Une bonne réponseChaque environnement d'exécution ouvre sa connexion, et la concurrence peut monter à plusieurs centaines. Il plafonne avec la concurrence réservée ou la concurrence maximale de l'event source mapping, place RDS Proxy pour mutualiser les connexions, ouvre la connexion hors du handler pour la réutiliser, et met une file SQS devant la base pour lisser la charge.

    Signal d'alerteAugmenter max_connections jusqu'à ce que ça passe, sans plafonner la concurrence.

Recevez la fiche d'entretien complète en PDF

La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.

  • 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
  • Le niveau visé pour chaque question
  • Une mise en situation de 20 minutes et ce qu'on attend du candidat
  • La grille d'évaluation de 1 à 4, axe par axe

Recruter en serverless sur AWS : vos questions

Quels services AWS un développeur Node.js serverless doit-il connaître ?

Lambda, API Gateway, DynamoDB, SQS et IAM forment le socle. Ajoutez selon le poste EventBridge, SNS, Step Functions, S3, Cognito et CloudWatch. Côté outillage, au moins un outil d'infrastructure as code parmi le CDK, SAM, le Serverless Framework, SST ou Terraform. La liste compte moins que la façon de les relier : savoir où placer une file, comment rejouer un échec et comment éviter un traitement en double.

Un développeur NestJS ou Express peut-il passer sur un poste serverless ?

Oui, le langage et l'écosystème sont les mêmes. Ce qui change, c'est le modèle d'exécution : pas de serveur permanent, des connexions à gérer autrement, des événements qui arrivent en double, des limites de durée et de taille. Posez-lui les questions sur le démarrage à froid, l'idempotence et les connexions à la base. Un profil qui a déjà déployé sur AWS, même avec des conteneurs, part avec une avance nette.

Comment organiser un test technique serverless ?

Le plus simple reste une conception au tableau suivie d'une relecture de code. Décrivez un flux, par exemple une commande qui déclenche facturation et e-mail, et demandez les services choisis, les clés DynamoDB et la gestion des échecs. Puis faites relire une Lambda qui ouvre une connexion par appel et ignore les lots SQS en échec. Pas besoin de compte AWS pour l'exercice.

La certification AWS Developer Associate suffit-elle ?

Elle montre que la personne connaît les services AWS et leurs usages, et elle est valable trois ans. Elle ne dit rien de la façon dont un système a tenu en production. Demandez une facture réduite, un incident de doublons ou de throttling, un déploiement progressif mis en place. Un candidat non certifié qui raconte ces cas avec précision vaut souvent mieux qu'un certifié qui n'en a aucun.

Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.

Les fiches voisines

Toutes les fiches →

Voyez Delectus sur vos propres offres.

Commencez gratuitement. Passez à l'échelle quand vous êtes prêt.

Demander une démo

Votre ATS, connecté à Delectus

  • Workable
  • Teamtailor
  • iCIMS
  • Lever
  • SmartRecruiters
  • Jobvite
  • Greenhouse
  • Pinpoint