Quiz de Validation - MODULE 12
Ce quiz de 30 questions vous permet de valider vos connaissances sur le depannage Lambda avant de passer au lab pratique.
Question 1
Ou trouver les logs d'une fonction Lambda ?
A) Dans S3
B) Dans CloudWatch Logs, groupe /aws/lambda/nom-fonction
C) Sur l'instance EC2
D) Dans DynamoDB
Voir la reponse
Reponse : B
Les logs Lambda sont automatiquement envoyes vers CloudWatch Logs dans le groupe /aws/lambda/nom-de-la-fonction. Chaque conteneur d'execution cree un log stream. Verifiez que la fonction a les permissions CloudWatch Logs.
Question 2
Qu'est-ce que l'erreur "Task timed out" signifie ?
A) La connexion reseau a expire
B) La fonction a depasse son timeout configure
C) Le trigger a expire
D) L'API a expire
Voir la reponse
Reponse : B
"Task timed out after X seconds" signifie que la fonction n'a pas termine dans le delai configure (timeout). Solutions : augmenter le timeout (max 15 min), optimiser le code, ou decouvrir pourquoi l'execution est lente (attente reseau, BDD).
Question 3
Comment augmenter le timeout d'une fonction Lambda ?
A) Ce n'est pas configurable
B) Dans la configuration de la fonction, modifier le parametre Timeout (max 15 min)
C) Via le code uniquement
D) En contactant AWS
Voir la reponse
Reponse : B
Le timeout est configurable dans les parametres de la fonction : console, CLI, ou template CloudFormation/SAM. La valeur maximale est 900 secondes (15 minutes). Adaptez selon le temps reel necessaire plus une marge.
Question 4
L'erreur "out of memory" indique quoi ?
A) Le disque est plein
B) La fonction a depasse la memoire allouee
C) CloudWatch manque de stockage
D) S3 est plein
Voir la reponse
Reponse : B
"Runtime exited with error: signal: killed" ou "Memory Size: X MB Max Memory Used: X MB" indique que la fonction a utilise toute sa memoire. Solution : augmenter la memoire allouee ou optimiser le code pour utiliser moins de memoire.
Question 5
Comment savoir combien de memoire une fonction utilise ?
A) Ce n'est pas mesurable
B) Dans les logs CloudWatch "REPORT" ou les metriques "Max Memory Used"
C) Via le code
D) Dans la console EC2
Voir la reponse
Reponse : B
Chaque invocation genere une ligne REPORT dans les logs : "Memory Size: 128 MB Max Memory Used: 85 MB". La metrique CloudWatch "MaxMemoryUsed" montre aussi cette valeur. Si proche de la limite, augmentez la memoire.
Question 6
Qu'est-ce que l'erreur "Access Denied" dans Lambda ?
A) Acces refuse a la console
B) La fonction n'a pas les permissions IAM pour acceder a une ressource
C) Le mot de passe est incorrect
D) Le VPC est bloque
Voir la reponse
Reponse : B
"Access Denied" signifie que le role IAM de la fonction n'a pas les permissions necessaires. Verifiez que le role a les policies pour acceder a S3, DynamoDB, SQS, ou autre service utilise par le code.
Question 7
Comment diagnostiquer les erreurs de permissions Lambda ?
A) Attendre qu'elles disparaissent
B) Verifier les logs pour l'erreur exacte, puis ajuster les policies IAM du role
C) Recreer la fonction
D) Contacter AWS
Voir la reponse
Reponse : B
Lisez les logs CloudWatch pour identifier la ressource et l'action refusees. Verifiez le role IAM de la fonction. Ajoutez la policy necessaire (ex: s3:GetObject). Testez a nouveau. Utilisez IAM Policy Simulator pour valider.
Question 8
Une fonction Lambda dans un VPC ne peut pas acceder a Internet. Pourquoi ?
A) C'est normal
B) Lambda dans un VPC necessite un NAT Gateway pour l'acces Internet
C) Le Security Group bloque
D) Les logs ne fonctionnent pas
Voir la reponse
Reponse : B
Lambda dans un VPC utilise des ENI dans des subnets prives. Pour acceder a Internet, configurez un NAT Gateway dans un subnet public et une route 0.0.0.0/0 vers le NAT dans la table de routage des subnets Lambda.
Question 9
Une fonction Lambda dans un VPC ne peut pas acceder a DynamoDB. Que faire ?
A) Supprimer le VPC
B) Utiliser un VPC Endpoint pour DynamoDB ou configurer un NAT Gateway
C) Changer de region
D) Augmenter la memoire
Voir la reponse
Reponse : B
DynamoDB est un service public. Une Lambda VPC a besoin soit d'un NAT Gateway (couteux), soit d'un VPC Endpoint Gateway pour DynamoDB (gratuit et recommande). Le VPC Endpoint permet l'acces prive sans passer par Internet.
Question 10
Qu'est-ce que l'erreur "Handler not found" ?
A) Le handler est introuvable
B) Le nom du handler configure ne correspond pas a la fonction dans le code
C) Le fichier n'existe pas
D) La memoire est insuffisante
Voir la reponse
Reponse : B
Cette erreur signifie que Lambda ne trouve pas le handler specifie. Verifiez : le format (fichier.methode), le nom du fichier (ex: lambda_function.py), le nom de la methode, et que le fichier est a la racine du package.
Question 11
Comment est formate le handler en Python ?
A) handler.py
B) fichier.fonction (ex: lambda_function.lambda_handler)
C) lambda.handler
D) handler()
Voir la reponse
Reponse : B
En Python, le format est : nom_fichier.nom_fonction. Le defaut est lambda_function.lambda_handler, donc un fichier lambda_function.py avec une fonction def lambda_handler(event, context). Ajustez selon votre structure.
Question 12
Qu'est-ce que l'erreur "Module not found" ?
A) Le module AWS est manquant
B) Une dependance requise par le code n'est pas incluse dans le package
C) Python n'est pas installe
D) Le handler est incorrect
Voir la reponse
Reponse : B
"Unable to import module" ou "Module not found" signifie qu'une bibliotheque utilisee dans le code n'est pas dans le package de deploiement. Incluez les dependances dans le ZIP ou utilisez des Lambda Layers.
Question 13
Comment inclure des dependances Python dans Lambda ?
A) Les installer globalement
B) pip install dans un dossier, l'inclure dans le ZIP de deploiement ou utiliser Layers
C) Automatiquement incluses
D) Via la console
Voir la reponse
Reponse : B
Creez un dossier, installez les dependances : pip install requests -t ./package/, ajoutez votre code, zippez le tout. Ou utilisez Lambda Layers pour les dependances partagees. SAM et CDK automatisent ce processus.
Question 14
Qu'est-ce que "cold start" et comment le detecter ?
A) Un bug de Lambda
B) Delai d'initialisation visible par une "Init Duration" dans les logs REPORT
C) Une erreur de timeout
D) Un probleme de memoire
Voir la reponse
Reponse : B
Le cold start apparait dans les logs : "Init Duration: X ms" n'est present que lors des cold starts. La metrique "Duration" inclut ce temps. Les invocations suivantes (warm) n'ont pas d'Init Duration.
Question 15
Une fonction retourne une erreur 502 via API Gateway. Que verifier ?
A) API Gateway uniquement
B) Les logs Lambda pour l'erreur reelle, le format de reponse Lambda
C) Route 53
D) CloudFront
Voir la reponse
Reponse : B
502 depuis API Gateway signifie souvent que Lambda a retourne une reponse mal formatee ou a crash. Verifiez les logs Lambda pour l'erreur. Assurez-vous que la reponse suit le format attendu par API Gateway (statusCode, body, headers).
Question 16
Quel format de reponse Lambda attend API Gateway ?
A) Texte simple
B) JSON avec statusCode, headers, body
C) XML
D) HTML
Voir la reponse
Reponse : B
Le format attendu est un objet JSON avec statusCode (200), headers (Content-Type: application/json), et body (une string JSON). Le body doit etre une string, pas un objet. Une reponse mal formatee cause une erreur 502.
Question 17
Comment deboguer une fonction Lambda en production ?
A) Se connecter au serveur
B) Analyser les logs CloudWatch, activer X-Ray pour le tracing
C) Modifier le code en prod
D) Attendre les plaintes
Voir la reponse
Reponse : B
Utilisez CloudWatch Logs pour les messages d'erreur. Activez AWS X-Ray pour tracer les requetes a travers les services (latence, erreurs). CloudWatch Insights permet des requetes sur les logs. Ajoutez du logging structure dans le code.
Question 18
Qu'est-ce que AWS X-Ray pour Lambda ?
A) Une radiographie des serveurs
B) Un service de tracing distribue qui montre le parcours des requetes
C) Un antivirus
D) Un outil de backup
Voir la reponse
Reponse : B
AWS X-Ray trace les requetes a travers Lambda et autres services (API Gateway, DynamoDB, S3). Il montre une carte des services, les latences, et aide a identifier les goulots d'etranglement et les erreurs.
Question 19
Une fonction echoue de maniere intermittente. Que verifier ?
A) Le code uniquement
B) Les logs pour les patterns, les timeouts, les cold starts, les throttles
C) Rien, c'est normal
D) Le Security Group
Voir la reponse
Reponse : B
Les echecs intermittents peuvent etre dus a : timeouts (ressources externes lentes), cold starts (initialisation echouee), throttling (limites de concurrence), ressources externes indisponibles, ou connexions fermees (connection pooling).
Question 20
Qu'est-ce que le "throttling" Lambda ?
A) Limitation de vitesse du code
B) Refus d'invocations car la limite de concurrence est atteinte
C) Compression des donnees
D) Limitation de memoire
Voir la reponse
Reponse : B
Le throttling se produit quand la fonction atteint sa limite de concurrence (reserved ou regionale). Les invocations supplementaires sont refusees avec une erreur 429 (TooManyRequestsException). Augmentez les limites ou implementez une queue.
Question 21
Comment detecter si Lambda est throttle ?
A) Impossible a detecter
B) Metrique CloudWatch "Throttles", erreur 429 dans les logs appelants
C) Via le code
D) Dans EC2
Voir la reponse
Reponse : B
La metrique CloudWatch "Throttles" compte les invocations refusees. L'appelant recoit une erreur 429 TooManyRequestsException. Surveillez cette metrique et creez des alarmes pour detecter les problemes de capacite.
Question 22
Qu'est-ce que la Dead Letter Queue (DLQ) et quand est-elle utilisee ?
A) Une queue de messages morts
B) Une destination pour les evenements echoues apres tous les retries (invocation asynchrone)
C) Une queue de sauvegarde
D) Une queue de priorite
Voir la reponse
Reponse : B
La DLQ recoit les evenements qui ont echoue apres les retries automatiques (2 pour async). Configurez une SQS ou SNS comme DLQ. Analysez ces messages pour comprendre et corriger les echecs.
Question 23
Comment configurer les retries pour Lambda ?
A) Via le code uniquement
B) Depend du type d'invocation : configurable pour async, automatique pour streams
C) Pas de retries
D) Via IAM
Voir la reponse
Reponse : B
Invocations async : 2 retries par defaut (configurable 0-2), avec backoff exponentiel. Streams (Kinesis, DynamoDB) : retry jusqu'a expiration des donnees ou succes. Synchrone : pas de retry automatique, l'appelant gere.
Question 24
Une fonction Lambda est tres lente. Que verifier en premier ?
A) Le nom de la fonction
B) Les logs REPORT pour Duration, Memory Used, et les appels externes
C) Le trigger
D) La region
Voir la reponse
Reponse : B
Analysez les logs REPORT : Duration (temps total), Billed Duration, Memory Used. Si proche de la limite memoire, augmentez-la. Verifiez les appels externes (BDD, API) qui peuvent etre lents. Utilisez X-Ray pour le detail.
Question 25
Augmenter la memoire Lambda affecte-t-il la vitesse ?
A) Non
B) Oui, plus de memoire = plus de CPU = execution potentiellement plus rapide
C) Ca la ralentit
D) Seulement pour Java
Voir la reponse
Reponse : B
Le CPU est alloue proportionnellement a la memoire. A 1,769 MB, vous obtenez 1 vCPU complet. Plus de memoire signifie plus de puissance de calcul, ce qui peut reduire le temps d'execution et parfois meme le cout total.
Question 26
Comment tester une fonction Lambda localement ?
A) Impossible
B) AWS SAM CLI, LocalStack, ou en executant le fichier Python/Node directement
C) Uniquement en production
D) Via EC2
Voir la reponse
Reponse : B
Testez localement avec : AWS SAM CLI (sam local invoke), LocalStack pour emuler Lambda, ou executez directement votre fonction avec un event mock. Cela accelere le cycle de developpement avant le deploiement.
Question 27
Qu'est-ce que l'erreur "ECONNREFUSED" dans Lambda ?
A) Connexion refusee par Lambda
B) La fonction ne peut pas se connecter a un service externe (endpoint inaccessible)
C) Erreur de permissions
D) Timeout Lambda
Voir la reponse
Reponse : B
ECONNREFUSED signifie que la connexion a ete refusee par l'endpoint cible. Causes : mauvaise URL/port, service non demarre, Security Group bloquant, probleme de routage VPC, ou service externe down.
Question 28
Qu'est-ce que l'erreur "socket timeout" dans Lambda ?
A) Le socket est casse
B) La connexion a un service externe prend trop de temps (pas de reponse)
C) Lambda a expire
D) Le VPC est mal configure
Voir la reponse
Reponse : B
Socket timeout signifie que le service externe ne repond pas dans le delai configure du client HTTP. Causes : service lent ou surcharge, probleme reseau, Security Group/NACL bloquant, ou mauvaise configuration du timeout client.
Question 29
Comment voir les erreurs d'une fonction Lambda en temps reel ?
A) Impossible
B) CloudWatch Logs Live Tail, CloudWatch Logs Insights, ou aws logs tail
C) Via email
D) Dans S3
Voir la reponse
Reponse : B
Utilisez CloudWatch Logs Insights pour des requetes en temps reel, "Live Tail" dans la console pour streamer les logs, ou aws logs tail /aws/lambda/nom-fonction --follow pour suivre depuis le CLI.
Question 30
Quelle est la meilleure pratique pour le logging dans Lambda ?
A) Ne pas logger
B) Utiliser JSON structure, inclure requestId, niveaux de log, et contexte utile
C) Logger tout
D) Uniquement les erreurs
Voir la reponse
Reponse : B
Best practices : utilisez du JSON structure pour faciliter les requetes, incluez le requestId (context.aws_request_id) pour tracer, utilisez des niveaux (INFO, ERROR), loggez le contexte utile sans donnees sensibles, et evitez les logs excessifs (cout).
Resultat
Comptez vos bonnes reponses :
- 27-30 : Excellent - Vous maitrisez le depannage Lambda
- 22-26 : Bien - Quelques points a revoir
- 17-21 : Moyen - Relisez le cours avant le lab
- Moins de 17 : Insuffisant - Reprenez le cours depuis le debut
Passez au Lab Depannage Lambda une fois que vous avez atteint au moins 22 bonnes reponses.