Bonnes pratiques avec Lambda - Amazon DynamoDB

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.

Bonnes pratiques avec Lambda

Une AWS Lambda fonction s'exécute dans un conteneur, c'est-à-dire un environnement d'exécution isolé des autres fonctions. Lorsque vous exécutez une fonction pour la première fois, AWS Lambda créez un nouveau conteneur et commencez à exécuter le code de la fonction.

Une fonction Lambda a un gestionnaire qui est exécuté une fois par appel. Le gestionnaire contient la logique métier principale de la fonction. Par exemple, la fonction Lambda illustrée dans Étape 4 : créer et tester une fonction Lambda comporte un gestionnaire qui peut traiter des registres dans un flux DynamoDB.

Vous pouvez également fournir un code d'initialisation qui ne s'exécute qu'une seule fois, après la création du conteneur, mais avant la première AWS Lambda exécution du gestionnaire. La fonction Lambda présentée dans Étape 4 : créer et tester une fonction Lambda contient un code d'initialisation qui importe le SDK JavaScript dans Node.js et crée un client pour Amazon SNS. Ces objets doivent être définis une seule fois, en dehors du gestionnaire.

Une fois la fonction exécutée, vous AWS Lambda pouvez choisir de réutiliser le conteneur pour les appels ultérieurs de la fonction. Dans ce cas, votre gestionnaire de fonction peut réutiliser les ressources que vous avez définies dans votre code d'initialisation. (Notez que vous ne pouvez pas contrôler la durée de conservation du conteneur par AWS Lambda , ni la réutilisation du conteneur.)

Pour AWS Lambda utiliser des déclencheurs DynamoDB, nous recommandons ce qui suit :

  • AWS les clients de service doivent être instanciés dans le code d'initialisation, et non dans le gestionnaire. Cela permet AWS Lambda de réutiliser les connexions existantes, pendant toute la durée de vie du conteneur.

  • En général, il n'est pas nécessaire de gérer explicitement les connexions ou d'implémenter un regroupement de connexions, car il AWS Lambda gère cela pour vous.

Un client Lambda pour un flux DynamoDB ne garantit pas une livraison unique et peut entraîner des doublons occasionnels. Assurez-vous que le code de votre fonction Lambda est idempotent afin d'éviter que des problèmes inattendus ne surviennent en raison d'un traitement dupliqué.

Pour plus d'informations, consultez la section Bonnes pratiques relatives à l'utilisation AWS Lambda des fonctions dans le Guide du AWS Lambda développeur.