L'un des services fournis par AWS, c'est un service qui peut exécuter le traitement sans gestion de serveur.
Par exemple, si vous n'utilisez pas Lambda, le processus ne sera exécuté qu'après avoir créé un serveur avec EC2, installé le middleware et la langue requis pour exécuter le processus et défini l'environnement.
Cependant, avec Lambda, il est possible de s'exécuter en écrivant simplement le processus sans provisionner un tel serveur.
Cette volonté ★ Pas besoin de gérer et de maintenir le serveur lui-même ★ Étant donné que vous êtes facturé uniquement pour le temps d'exécution du traitement, vous pouvez réduire considérablement les coûts en fonction de la fréquence de traitement. ★ Il est très pratique pour l'architecture principale AWS car il peut être facilement lié à d'autres services AWS. Il y a un mérite.
Il est nécessaire de définir un déclencheur pour exécuter le processus écrit. Il peut être lié à tous les services AWS et est généralement exécuté lorsqu'une alarme se produit sur CloudWatch, lorsque des données existent dans le flux de données Kinesis ou lorsqu'un fichier est placé sur S3.
En d'autres termes, Lambda est un service qui fonctionne si vous n'écrivez que ** conditions à exécuter ** et ** processus à exécuter **.
Écrivons maintenant un processus pour télécharger le fichier vers s3 et confirmons qu'il a été téléchargé.
Lambda définira la fonction pour chaque région. Il n'y a pas de problème avec S3, mais lors de la liaison avec des services affectés par d'autres régions, sélectionnez la même région.
Cette fois, nous utiliserons python 3.7. Le rôle doit être "Créer un nouveau rôle avec des autorisations Lambda de base". Il n'y a aucun problème à utiliser les rôles existants. Dans ce cas, Lambda doit avoir l'autorisation d'écrire des groupes de journaux dans CloudWatch pour les services de condition de déclenchement et la sortie de journal.
«Runtime» désigne la langue de traitement. Depuis le 02/05/2020, les langues pouvant être sélectionnées sont les suivantes. ・ Java 11/8 ・ .NET Core2.1 (C # / PowerShell) ・ GO 1.x · Parce que. js 12. x / 10. X ・ Python 3,8 / 3,7 / 3,6 / 2,7
Cette fois, exécutons-le lorsqu'un objet est créé dans s3. Lorsque le support de déclenchement est réglé sur s3, les cinq éléments suivants sont disponibles. ·seau -Type d'événement (si le fichier est PUT ..., si le fichier est supprimé ... etc.) -Prefix (chemin du répertoire après le bucket, nom du fichier, etc.) ・ Suffixe (nom de fichier, extension, etc.) -Activer le déclencheur (le déclencheur avec les paramètres ci-dessus fonctionnera dès que vous le vérifierez. Allumons-le après avoir testé le processus)
Par défaut, le processus est décrit dans un fichier appelé lambda_function.py.
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
lambda_handler est une fonction qui est automatiquement exécutée lorsque la condition de déclenchement définie dans Lambda est remplie. Modifiez après `` # TODO implémenter '' et écrivez le processus que vous souhaitez exécuter.
Cette fois, je vais essayer d'afficher le chemin et le nom du fichier où le fichier a été placé dans s3.
import json
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print (le bucket + '+ key +' a été créé dans le bucket! ')
Le «événement» passé en argument à lambda_handler contient les informations d'événement qui l'ont déclenché sous forme de tableau. Ce qui précède obtient le nom du compartiment et le chemin du fichier et l'affiche.
La fonction elle-même peut être exécutée en plaçant le fichier dans le chemin spécifié par le déclencheur. En plus de cela, il est possible d'exécuter la fonction Lambda de manière pseudo en définissant la valeur à saisir dans «événement» à partir du «test» dans l'image ci-dessous au format json.
De plus, il est possible de sélectionner la fonction cible dans le groupe de journaux CloudWatch et de la vérifier dans le journal d'exécution de la fonction.
J'ai pu confirmer que la fonction Lambda a été exécutée correctement! !!
Lambda utilise l'environnement AWS, et si vous souhaitez effectuer un traitement simple, il est fortement recommandé en termes de coût et de gestion. J'étais un peu inquiet car il n'y a pas d'espace pour écrire une explication de ce que fait la fonction, alors décrivons en détail le nom de la fonction facile à comprendre et les commentaires dans le processus, et ayons une vie Lambda confortable! !!