1.1 - Développer avec Lambda et le serverless

L'objectif 1.1 de l'AWS Certified Developer Associate couvre la création d'applications serverless. AWS Lambda exécute du code en réponse à des événements sans que tu provisionnes ou gères de serveurs, facturé par requête et par durée. Quand une fonction souffre de latence au démarrage à froid, la provisioned concurrency sur un alias ou une version garde un pool fixe d'environnements d'exécution préinitialisés et prêts à répondre instantanément. Pour ne récupérer que certaines lignes et colonnes d'un gros objet au lieu de le télécharger entièrement, S3 Select interroge le contenu de l'objet en SQL, réduisant le transfert et le coût. Tu dois aussi connaître les handlers Lambda, le réglage mémoire et timeout, les variables d'environnement, les couches et le modèle événement/contexte. Attends-toi à des mises en situation demandant la bonne fonctionnalité - Lambda, provisioned concurrency ou S3 Select.

Astuce mémoire
Exécuter du code sur événements, sans serveur = Lambda. Éliminer les cold starts avec un pool chaud = provisioned concurrency (sur alias/version). Interroger lignes/colonnes dans un objet S3 en SQL = S3 Select.

Questions d'entraînement

1. Quel service exécute du code en réponse à des événements sans que vous ayez à provisionner ou gérer des serveurs ?

  • Amazon EC2
  • AWS Lambda (bonne réponse)
  • Amazon Lightsail
  • AWS Batch

Lambda est du calcul sans serveur : vous téléversez une fonction qui s'exécute sur événements (API Gateway, S3, SQS...), montant en charge automatiquement et facturée à la milliseconde. Aucun serveur à gérer.

2. Quel élément DynamoDB identifie de façon unique un élément et détermine sa partition physique ?

  • La clé primaire (clé de partition, clé de tri optionnelle) (bonne réponse)
  • Un index secondaire global sur un attribut non-clé
  • Le débit provisionné en lecture/écriture
  • L'attribut de durée de vie (TTL) de l'élément

La clé primaire identifie chaque élément de façon unique. La clé de partition définit la partition ; une clé de tri optionnelle permet plusieurs éléments par clé de partition, ordonnés.

3. Quel type de file SQS garantit que les messages sont traités exactement une fois et dans l'ordre exact d'envoi ?

  • File FIFO (bonne réponse)
  • File standard
  • File de lettres mortes
  • File à délai

Les files FIFO préservent l'ordre strict et le traitement exactly-once (avec déduplication). Les files standard offrent un débit plus élevé mais une livraison au-moins-une-fois et un ordre au mieux.

4. Un développeur doit déclencher une fonction Lambda à chaque création d'objet dans un bucket S3. Qu'est-ce qui configure cela ?

  • Un flux DynamoDB configuré sur le bucket S3
  • Une notification d'événement S3 vers la fonction Lambda (bonne réponse)
  • Un comportement de cache CloudFront sur le bucket
  • Un sujet SNS abonné à une instance EC2

Les notifications d'événement S3 peuvent invoquer Lambda (ou envoyer vers SQS/SNS) sur des événements comme s3:ObjectCreated:*. C'est le déclencheur événementiel standard pour les téléversements d'objets.

5. Un développeur veut garantir un pool fixe d'environnements d'exécution pré-initialisés pour qu'une Lambda sensible à la latence évite les démarrages à froid. Quelle fonctionnalité fournit cela ?

  • La concurrence réservée qui plafonne la fonction
  • Une allocation de stockage éphémère /tmp plus grande
  • La concurrence provisionnée sur l'alias ou la version (bonne réponse)
  • Une source d'événement SQS avec un grand lot

La concurrence provisionnée garde un nombre défini d'environnements initialisés et prêts, éliminant les démarrages à froid pour ce nombre. La concurrence réservée ne fait que plafonner/réserver le nombre d'exécutions, sans les préchauffer.

6. Plusieurs fonctions Lambda partagent les mêmes bibliothèques de dépendances lourdes. Qu'est-ce qui les empaquette une fois pour réutilisation entre fonctions ?

  • Une couche (layer) Lambda référencée par chaque fonction (bonne réponse)
  • Une table DynamoDB distincte stockant les bibliothèques
  • Un réglage mémoire plus grand sur chaque fonction
  • Une règle de cycle de vie S3 copiant les bibliothèques

Une couche Lambda est un zip de bibliothèques ou de contenu d'exécution que plusieurs fonctions peuvent attacher, gardant les paquets de déploiement petits et les dépendances centralisées. Les couches sont montées sous /opt.

Objectifs liés