AWS Lambda - Introduction

AWS Lambda est un service qui prend en charge le calcul de votre code sans aucun serveur. On dit qu'il s'agit d'un calcul sans serveur. Le code est exécuté en fonction de la réponse d'événements dans les services AWS tels que l'ajout / la suppression de fichiers dans le compartiment S3, la mise à jour des tables Amazon DynamoDB, la requête HTTP de la passerelle Amazon Api, etc.

Le code AWS Lambda peut être écrit en NodeJS, Java, C #, Python et Go. Ce chapitre abordera en détail la création d'une fonction AWS Lambda dans la console AWS.

Console AWS

Connectez-vous à AWS Console via le lien https://aws.amazon.com/console. Une fois que vous vous y êtes connecté, il vous redirigera vers l'écran où les services AWS sont affichés.

Exemple: création d'une fonction

Comprenons les fonctionnalités d'AWS Console à l'aide d'un exemple. Cliquez sur Lambda (marqué ci-dessus), il sera redirigé pour créer la fonction comme indiqué ci-dessous -

Cliquez sur Create function et l'écran affiche les détails suivants -

Notez que, par défaut, l'option est Author from scratch. Cette option vous permet d'écrire le code Lambda à partir de zéro. Il aura juste une fonction simple avechello world message.

La deuxième option Blue prints a les détails suivants.

Il donne des détails sur le code déjà écrit pour certains des services aws dans les langues disponibles avec AWS Lambda. Dans le cas où vous devez écrire du code AWS Lambda pour tous les services que vous pouvez enregistrerblue prints et commencez.

La troisième option Serverless Application Repository a la configuration d'une application sans serveur qui aidera à déployer le code AWS Lambda.

Dans la discussion plus loin, nous travaillerons sur la première option où nous créons la fonction AWS lambda en utilisant Author from scratch.

Avant de créer une fonction Lambda, nous aurons besoin d'un rôle, c'est-à-dire l'autorisation de travailler avec les services AWS et aws lambda. Plus tard, le rôle doit être attribué à la fonction aws lambda.

Création de rôle dans AWS Console

Pour créer un rôle dans AWS Console, accédez aux services de la console AWS et cliquez sur IAM comme indiqué ci-dessous -

Maintenant, si vous cliquez sur IAM, vous verrez l'écran comme indiqué ci-dessous -

Si vous sélectionnez Roles, vous pouvez voir les boutons suivants sur l'écran -

Maintenant, cliquez sur Create role. Il vous demandera de choisir le service où vous devez utiliser le rôle créé.

Étant donné que nous devons utiliser ce rôle avec AWS Lambda, sélectionnez Lambda et cliquez Next:Permissionscomme indiqué ci-dessus. L'écran suivant affiche le nom de la stratégie disponible selon les services AWS. Vous pouvez sélectionner la politique ici -

Par exemple, si vous souhaitez autoriser AWS Lambda à fonctionner avec S3 et DynamoDB, vous devez sélectionner la stratégie. Dans la zone de recherche, entrez le service AWS et cliquez sur la case à cocher. Vous pouvez sélectionner plusieurs politiques et cliquer plus tard surNext:Review.

Il est également possible de créer votre propre politique. Par exemple, il existe une table dynamodb et vous devez donner l'autorisation uniquement à cette table, dans de tels cas, vous pouvez créer une stratégie.

Cliquer sur Create policycomme indiqué sur l'écran ci-dessus. Voici les détails affichés à l'écran.

Choisis un Servicepour lequel vous créez la stratégie. Plus tard, il affichera les données pour les actions,resources et Request conditions.

Maintenant, nous devons choisir le service. Laissez-nous sélectionnerAWS Dynamodb de la recherche. Actions a les détails suivants -

Maintenant, entrez le Access levelque vous souhaitez donner à DynamoDB. Ensuite,resources affichera les détails suivants -

Maintenant, sélectionnez le type de ressource de table. Vous pouvez voir la sortie suivante -

Pour obtenir l'autorisation sur la table, vous devez Add ARN. ARN correspond aux détails propres à la table créée dans AWS DynamoDB. Vous obtiendrez les détails lorsque la table sera créée dans dynamodb.

Si vous cliquez sur Add ARN et il affichera les détails suivants -

Maintenant, si vous entrez dans le ARN et le Region, Account et Tablenom sera renseigné. Vous devriez cliquerAddbouton pour ajouter la politique. De même, vous pouvez créer des stratégies pour d'autres services.

Ici, nous avons sélectionné deux politiques AmazonS3FullAccess et AmazonDynamoDBFullACcess. Nous avons donné un accès complet à S3 et DynamoDB dans ce rôle. Cependant, il est conseillé de n'autoriser que les buckets et les tables nécessaires.

Vous pouvez suivre les étapes décrites précédemment pour créer les stratégies à l'aide de ARN.

Étape 1

Cliquez sur Create rolebouton pour créer le rôle. Tous les rôles créés sont affichés comme indiqué -

Étape 2

Notez que vous pouvez sélectionner le rôle dont vous avez besoin au cas où vous auriez besoin de toute modification pour le rôle créé. Si nous sélectionnonsAuthor from scratch option, vous devez entrer Name, Runtime and Role.

Étape 3

Vous pouvez observer les détails suivants dans Runtime liste déroulante -

Étape 4

Vous pouvez sélectionner le runtime de votre choix et procéder comme indiqué.

Role le menu déroulant a les options suivantes -

  • Choose an existing role − Cela affichera tous les rôles créés dans les rôles IAM.

  • Create new role from template(s) −Cela vous permettra de créer un rôle et affichera l'autorisation d'être sélectionné pour ce rôle. Observez la capture d'écran pour une meilleure compréhension.

  • Create a custom role − Cela permet à l'utilisateur de créer des politiques comme nous l'avons vu précédemment.

Étape 5

Sélectionnez le runtime, roleet ajoutez la fonction. Cliquer surCreate functionpour créer la fonction lambda. L'écran suivant affiché est le suivant -

Parties de la fonction AWS Lambda

La fonction AWS Lambda comprend deux parties:Configuration et Monitoring. Laissez-nous discuter chacun en détail.

Configuration

Les fonctionnalités suivantes sont incluses dans la configuration.

Add Triggers

Les déclencheurs qui doivent être ajoutés à la fonction AWS Lambda sont affichés comme suit:

Notez que lorsque nous sélectionnons un déclencheur, nous devons ajouter les détails de configuration de ce déclencheur. Pour Exemple pour le déclencheur S3, nous devons sélectionner le nom du compartiment; pour le déclencheur Dynamodb, nous devons sélectionner le nom de la table.

Exemple

Voyons un exemple de détails de configuration pour un déclencheur S3 -

Maintenant, ajoutez les détails de configuration pour le déclencheur S3 ajouté -

Ici, vous devez sélectionner le bucket name, event type sur lequel vous souhaitez déclencher Lambda, préfixe et modèle de filtre le cas échéant et Add le déclencheur.

Ajout de code dans Lambda

Maintenant, nous devons nous concentrer sur le code Lambda à écrire. Pour ajouter du code dans aws lambda, il existe trois options -

  • Utilisation de l'éditeur en ligne
  • Utilisation du fichier .zip
  • Télécharger un fichier depuis Amazon S3

Il est montré dans la capture d'écran ci-dessous -

Laissez-nous discuter de chacun d'eux en détail.

Using the inline editor

L'éditeur de code en ligne où vous pouvez écrire votre code est le suivant -

Vous pouvez écrire votre code en choisissant la langue de votre choix. Vous êtes autorisé à choisir à nouveau le runtime ici.

Observez la capture d'écran suivante pour une meilleure compréhension -

Le code doit être écrit en index.js.Handler. Les détails varieront en fonction de l'exécution. Pournodejs, il est filename.export function qui est maintenant index.lambda handler.

Upload a .ZIP file

Vous pouvez d'abord écrire le code, le compresser et télécharger le fichier zip en sélectionnant Upload a .ZIP file.

Upload a file from Amazon S3

Vous pouvez télécharger le fichier dans le compartiment S3 et choisir l'option Upload a file from Amazon S3.

Notez que pour .ZIP et S3 il ne sera pas possible de modifier le runtime.

Variables d'environnement

Ils prennent des paires de valeurs clés et les partagent avec le code AWS Lambda. Nous pouvons utiliser des variables d'environnement dans AWS Lambda pour stocker les détails de connexion à la base de données, les détails du fichier pour stocker la sortie, les détails du fichier journal, etc.

Mots clés

Ce sont des paires clé-valeur ajoutées à AWS Lambda pour mieux organiser la fonction lorsqu'elle est utilisée dans différentes régions. Pour un cas d'utilisation simple, ce n'est pas obligatoire. Lorsqu'il y a beaucoup de fonctions Lambda créées, le balisage aide à filtrer et à gérer les fonctions Lambda.

Rôle d'exécution

Vous pouvez modifier à nouveau le rôle ici si ce n'est pas fait correctement au début de la création de la fonction Lambda. Vous pouvez mettre à jour ou créer un nouveau rôle ici. Il fournit les mêmes options qui étaient affichées au début de la création de la fonction Lambda.

Paramètres de base

Ici, vous devez entrer la brève description de ce que fait votre fonction Lambda. Sélectionnez la mémoire et le délai d'expiration requis pour la fonction Lambda.

Réseau

Cela vous permet de sélectionner le VPC qui vous permettra d'accéder à la fonction Lambda à partir du VPC. Par défaut, aucun VPC n'est sélectionné.

Débogage et gestion des erreurs

Pour le débogage et la gestion des erreurs, vous pouvez sélectionner le service AWS pour envoyer les détails. Les options disponibles sontNone, SNS et SQS.

Concurrence

Cela vous permet d'allouer une limite spécifique d'exécutions simultanées autorisées pour cette fonction.

Audit et conformité

Il contient des journaux qui sont gérés à l'aide d'AWS CloudTrail.

Une fois terminé, vous devez enregistrer les modifications en utilisant le bouton Enregistrer comme indiqué ici -

Maintenant, si vous cliquez sur Testbouton, il demandera un événement de test. Vous pouvez réussir un exemple d'événement de test comme suit -

L'événement de test créé est comme indiqué ici -

Maintenant, enregistrez l'événement de test et cliquez sur le bouton de test pour voir l'exécution de la fonction AWS Lambda -

Le code pour index.js est comme suit -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log(event.key1);
   console.log(event.key2);
   console.log(event.key3);
   callback(null, 'Lambda test');
};

Notez que la fonction de rappel est appelée en cas d'erreur ou de succès. En cas de succès, vous pouvez voirLambda test s'affichera.

surveillance

Sélectionnez l'onglet de surveillance pour afficher les détails d'exécution de la fonction Lambda. Les graphiques montrent les détails du temps d'exécution, des erreurs survenues, etc.

Vous pouvez également afficher les journaux dans Cloudwatch. Pour cela, accédez aux services AWS et sélectionnez cloudwatch comme indiqué -

Maintenant, sélectionnez les journaux du côté gauche et entrez le nom de votre fonction dans le filtre -