Une introduction aux déclencheurs disponibles pour invoquer une fonction lambda

Une introduction aux déclencheurs disponibles pour invoquer une fonction lambda
AWS Lambda est un service étonnant basé sur le cloud qui a révolutionné le monde sans serveur. Il s'agit en fait d'un logiciel en tant que service (SaaS) qui peut être facilement et rapidement mis en place et est utile pour réduire le budget global de votre infrastructure cloud. Ce que vous devez faire, c'est simplement concevoir votre code et l'exécuter en utilisant la fonction lambda.

Maintenant, le point ici est comment vous êtes censé exécuter votre code dans la fonction et la réponse à cela est qu'il existe une longue liste de méthodes à travers lesquelles vous pouvez invoquer ou déclencher vos fonctions lambda. Cela comprend de nombreux autres services AWS qui peuvent être utilisés pour appeler la fonction souhaitée si nécessaire.

Dans cet article, vous allez voir une brève explication concernant les services et les techniques qui peuvent être appliqués pour invoquer vos fonctions lambda en Amazon.

Types d'invocations

Avant d'aller plus loin, discutons les deux principaux types d'invocations suivantes que la fonction Lambda peut gérer.

  • Invocations synchrones
  • Invocations asynchrones
  1. Invocations synchrones
    Dans les invocations synchrones, le service qui invoque le lambda doit attendre que les résultats y soient retournés, puis poursuivre le reste du processus. On peut également dire que la sortie de la fonction lambda est requise par la fonction ou le service lui-même qui a invoqué ce lambda.
  2. Invocations asynchrones

    Ici, il n'y a pas d'attente que les fonctions Lambda fournissent les résultats à l'invocateur. Ceci est principalement utilisé pour les notifications ou pour déclencher d'autres événements indépendants dans AWS. Le service qui veut invoquer la fonction lambda envoie simplement la déclencheur et cette opération est en file d'attente dans la lambda et sera exécutée à son tour.

Différentes façons d'invoquer Lambda

Ici, vous allez voir de nombreuses façons d'invoquer les fonctions lambda. Sachant que cela vous est très utile la prochaine fois que vous concevez votre infrastructure AWS simple mais rentable.

Invoquez directement les fonctions lambda

Dans la plupart des cas, les fonctions lambda sont conçues pour être déclenchées à l'aide d'autres services, mais vous pouvez les invoquer directement à l'aide de la console de gestion AWS, AWS CLI et via l'URL de la fonction.

Invoquer Lambda de la console de gestion

Lorsque vous créez une fonction lambda dans votre console AWS, vous pouvez facilement la déclencher à l'aide de l'option Test Run dans la console. Le Test Le bouton est disponible dans la section Code de la fonction lambda.

Vous pouvez créer un événement personnalisé et utiliser la console avec votre modèle d'événement personnalisé.

De cette façon, la fonction lambda peut être déclenchée à partir de la console AWS.

AWS CLI

AWS vous donne la possibilité d'utiliser toutes ses ressources en utilisant l'interface de ligne de commande AWS. Toute fonction lambda peut également être invoquée avec cette CLI. Cela peut être très efficace pour tester les choses pendant les étapes de développement. Suivre la commande AWS CLI peut être utilisée comme déclencheur pour invoquer la fonction lambda.

ubuntu @ ubuntu: ~ $ aws lambda invoke \
--nom de fonction \
--charge utile \
--cli-binaire < base64 | raw-in-base64-out >

La fonction est déclenchée avec succès et vous pouvez également l'observer dans la sortie.

URL de fonction

L'URL de fonction est en fait un point de terminaison HTTP que vous pouvez configurer pour vos fonctions lambda. Cette URL peut être utilisée pour déclencher les fonctions lambda et vous pouvez également partager cette URL avec d'autres utilisateurs même en dehors de votre compte AWS pour invoquer les fonctions lambda. Bien que vous deviez être prudent avec les URL de fonction, toute personne ayant ce lien peut déclencher votre fonction Lambda d'innombrables fois, et tous les coûts seront sur votre tête.

Une URL de fonction peut être configurée lors de la création ainsi qu'après avoir créé la fonction lambda. Pour cela, accédez simplement aux paramètres avancés de la section de configuration et vérifiez le Activer l'URL de la fonction boîte.

Dans le cas où vous n'avez pas attaché URL de fonction lors de la création de la fonction lambda, vous pouvez le faire plus tard. Pour cela, vous devez accéder à l'onglet Configuration, sélectionner l'URL de la fonction et cliquer sur Créer URL de fonction.

De cette façon, l'URL de fonction est créée et utilisée pour invoquer la fonction lambda.

Invoquez des fonctions Lambda à l'aide de services AWS

De nombreux services AWS peuvent être configurés comme un déclencheur pour invoquer la fonction lambda. Il vous suffit de configurer les services AWS comme un déclencheur pour invoquer la fonction lambda. Ici, nous passons par tous ces services avec une explication sur la façon de les utiliser lorsque votre Lambda se déclenche.

Passerelle API

Il s'agit d'un service AWS qui est largement utilisé pour créer et gérer les API de votre modèle d'application. Les API donnent un moyen très flexible de générer des demandes ou des appels d'un progiciel à un autre package que nous ne pouvons pas exposer directement et que nous voulons simplement garder dans les coulisses.

Pour ajouter n'importe quel service en tant que déclencheur à votre fonction lambda, accédez simplement à la fonction lambda et cliquez sur Ajouter un déclencheur.

Ensuite, vous pouvez sélectionner le service que vous souhaitez attacher comme déclencheur à votre fonction Lambda. Pour cette section, nous sélectionnons la passerelle API comme déclencheur de la fonction lambda.

Ensuite, configurez le service tel que vous souhaitez qu'il agisse dans votre structure d'application.

Il existe deux types d'API soutenus par la passerelle API et ceux-ci peuvent être utilisés pour invoquer une fonction lambda.

API HTTP: Ils sont utilisés pour générer les points de terminaison HTTP qui sont acheminés vers vos fonctions lambda. Les API HTTP donnent moins de fonctionnalités et sont moins coûteuses à utiliser.

API REST: Si vous voulez plus de fonctionnalités dans votre API, vous devez opter pour une API REST. Ces API peuvent invoquer la fonction lambda et utiliser les mêmes méthodes HTTP, offrant plus de flexibilité et d'indépendance.

Seau S3

Il existe de nombreux cas d'utilisation où vous verrez que les seaux S3 agissent comme un déclencheur pour invoquer la fonction lambda. Vous pouvez configurer un seau S3 pour déclencher la fonction lambda pour un événement S3 spécifique.

Par exemple, vous souhaitez collecter les métadonnées de n'importe quel fichier lorsqu'il est téléchargé sur votre seau. Pour cela, vous développez un code et le déployez sur la fonction lambda. Pour le déclencheur lambda, sélectionnez le seau S3. Pour le type d'événement, sélectionnez mettre l'objet. De sorte que, chaque fois qu'un nouveau fichier est ajouté au seau, la fonction lambda est déclenchée et que les métadonnées de l'objet sont collectées et stockées à l'emplacement de destination lorsque vous spécifiez.

Il peut y avoir de nombreux autres scénarios où S3 peut être utilisé comme déclencheur pour invoquer la fonction lambda.

Équilibreur de charge

Supposons que votre application soit conçue pour s'exécuter sur les fonctions lambda car la fonction lambda est la solution la plus rentable pour une application simple basée sur le cloud. Maintenant, pour exposer votre application aux utilisateurs finaux, vous voudrez peut-être attacher un équilibreur de chargement devant celui-ci. Pour cette section, sélectionnez l'équilibreur de charge qui agit comme déclencheur pour invoquer la fonction lambda. N'oubliez pas que vous ne pouvez configurer que l'équilibreur de charge d'application pour cette tâche car les autres équilibreurs de charge ne sont pas pris en charge par les fonctions lambda.

Afin d'ajouter l'équilibreur de charge d'application à la fonction lambda, vous devez d'abord créer un groupe cible et la fonction lambda est ajoutée à ce groupe cible. Maintenant, le groupe cible nouvellement créé peut être ajouté aux auditeurs de l'équilibreur de chargement d'application.

Nuage

Amazon CloudFront est en fait un CDN (réseau de livraison de contenu) et est utilisé pour mettre en cache les données d'application aux emplacements Edge qui sont beaucoup plus proches des utilisateurs finaux par rapport aux serveurs d'applications réelles. En utilisant CloudFront, vous pouvez vraiment améliorer le temps de réponse pour servir le contenu statique aux utilisateurs finaux du monde entier.

Les fonctions lambda peuvent être déclenchées à l'aide du service CloudFront. Pour cela, vous devez déployer votre fonction lambda sur les emplacements Edge à travers le monde connu sous le nom de lambda @ edge.

Vous pouvez définir le CloudFront en tant que déclencheur pour envoyer les demandes au lambda @ egde via CloudFront pour améliorer le temps de réponse. Alors que le Lambda @ Edge est déployé sur tous les emplacements Edge à travers le monde, les utilisateurs finaux sont confrontés à un temps de réponse minimum en accédant à la Lambda déployée l'emplacement de bord le plus proche.

Pour configurer cela, allez simplement à Ajouter la déclencheur et choisissez le service CloudFront. Là, vous verrez le Déployer sur Lambda @ Edge option.

Maintenant, il vous suffit de terminer les étapes de configuration et de démarrer.

Journaux de cloudwatch

Chaque fois que vous pensez à la surveillance dans le cloud AWS, la première chose qui vous vient à l'esprit est CloudWatch car il s'agit d'un service de surveillance très vaste qui peut être configuré pour différents services d'une manière très utile.

Les journaux CloudWatch, tels que le nom le définissent, est un service de journalisation qui peut être utilisé pour stocker toutes sortes de journaux. Vous pouvez créer différents groupes de journaux pour différents services pour garder les journaux séparés. Ces journaux peuvent être utilisés pour déclencher votre fonction lambda en fonction des événements qu'ils reçoivent, indépendamment du service ou de la procédure qui produit ces événements.

Vous pouvez soit configurer le déclencheur à partir de la console de fonction lambda ou directement à partir des journaux CloudWatch. Pour ce faire à partir de la console CloudWatch, allez simplement au service CloudWatch et ouvrez les groupes de journaux. Ici, vous devez créer un filtre d'abonnement Lambda.

Ensuite, choisissez la fonction lambda que vous voulez et vous êtes prêt à partir.

Maintenant, chaque fois que CloudWatch obtient ce flux de journaux, il agit comme un déclencheur pour invoquer la fonction lambda.

Événement

Amazon Eventbridge (précédemment connu sous le nom d'événements CloudWatch) est un service AWS qui vous permet de créer les règles de l'événement pour déclencher un service AWS spécifique sur un événement spécifique qui se produit dans un compte AWS.

Il existe une grande variété de règles que vous pouvez définir pour les services AWS (comme la création d'instances EC2 ou les événements de base de données RDS) ainsi que pour les services tiers (tels que l'événement GitHub Push). Ces règles peuvent être davantage liées à d'autres services tels que les fonctions Lambda de manière à ce que chaque fois que cette règle soit satisfaite, il invoque la fonction lambda.

Si vous avez déjà une règle Eventbridge, vous pouvez facilement ajouter cette règle en tant que déclencheur à votre fonction lambda. Sélectionnez l'événement Bridge comme déclencheur et fournissez simplement le nom de la règle.

Une règle existante est ajoutée ici en tant que déclencheur, mais vous pouvez également créer une règle à ce stade.

Dynamodb

Vous avez peut-être su que DynamoDB n'est qu'une base de données NoSQL et qu'elle apparaît comme un service entièrement séparé dans AWS. Il s'agit d'une base de données sans serveur entièrement configurée et vous pouvez simplement commencer directement à créer des tables. Ces tables DynamoDB peuvent être configurées pour agir comme déclencheurs pour invoquer les fonctions lambda.

Les données du DynamoDB peuvent être chargées à Lambda comme entrée sous forme de lots et elle est traitée à l'aide du code qui est déployé dans Lambda.

Kinésis

Si vous souhaitez collecter et analyser les données en temps réel à un taux élevé, vous pouvez bénéficier de la kinsis AWS. Supposons que vous souhaitiez traiter les données collectées par les flux de données de Kinesis à l'aide des fonctions Lambda. Vous devez simplement déclencher votre fonction lambda chaque fois que les données sont enregistrées par la kinsis.

Vous venez de terminer la configuration de votre flux de données de kinésis pour invoquer la fonction lambda.

Sns

Il s'agit simplement d'un service de notification qui est couramment utilisé pour envoyer des notifications d'un service AWS à l'autre, car parfois il n'y a aucun moyen de configurer les notifications directement d'un service à l'autre. Les fonctions lambda peuvent être déclenchées à l'aide de ce service.

Créez d'abord un sujet SNS, puis utilisez-le pour invoquer votre fonction lambda.

Vous devez sélectionner le nom de votre sujet SNS. Il n'y a pas d'autres configurations ou paramètres.

Conclusion

Amazon Lambda est vraiment une percée dans l'architecture cloud. Le développement et le déploiement des applications n'ont jamais été aussi faciles et simples avant de. Il vous permet de créer simplement votre code dans n'importe quel framework commun et de télécharger votre code sur Lambda et il est exécuté. Il existe une longue liste d'autres services qui peuvent être associés à AWS Lambda et agir comme un déclencheur pour invoquer votre fonction lambda uniquement lorsqu'il est requis. Il n'y a pas de coût de fonctionnement continu du serveur, mais vous serez facturé en fonction du nombre de déclencheurs et de l'heure de l'exécution du code.