AWS Lambda est un service d’Amazon Web Services (AWS) qui vous permet d’exécuter votre code en réponse à des événements sans gérer de serveurs. C’est un moyen simple et évolutif de créer des applications.
Dans ce tutoriel, je vais vous montrer comment utiliser AWS Lambda avec trois autres services :
-
Amazon S3 pour stocker des fichiers, des images et des vidéos
-
Amazon Simple Notification Service (SNS) pour envoyer des notifications
-
Amazon EventBridge pour planifier des messages
Nous allons tout parcourir étape par étape.
À la fin, avec l’intégration des autres services, vous aurez créé une application de Citation de Manifestation de But qui envoie des messages inspirants aléatoires pour vous garder motivé et concentré sur vos objectifs.
Prérequis
-
Un compte AWS : Si vous n’en avez pas, inscrivez-vous ici.
-
Un dépôt GitHub : Ceci est pour stocker votre code source. Si vous n’avez pas de compte GitHub, vous pouvez en créer un ici.
-
Un environnement de développement intégré (IDE) tel que Visual Studio Code ou Sublime Text.
-
Une connaissance de base du développement web et de tout langage de programmation de votre choix. J’ai utilisé Python pour ce tutoriel.
Ce que vous apprendrez
-
Comment créer un bucket Amazon S3
-
Comment utiliser Amazon Simple Notification Service (SNS)
-
Comment utiliser Amazon Lambda
-
Comment utiliser Amazon EventBridge
Table des matières
Étape 1 : Configurez votre environnement de développement
Dans cette étape, vous allez tout configurer. Commencez par vous connecter à votre compte AWS, puis installez Python si vous ne l’avez pas sur votre IDE.
Étape 2 : Créez un service de stockage simple Amazon (S3)
Avant de commencer à créer un bucket S3, comprenons d’abord ce qu’est Amazon S3 :
Amazon S3 (Simple Storage Service) est un service d’Amazon qui vous permet de stocker et d’accéder à n’importe quelle quantité ou type de données, telles que des photos, des vidéos, des documents et des sauvegardes, chaque fois que vous en avez besoin.
Maintenant que vous connaissez les bases de ce qu’est Amazon S3, revenons au tutoriel.
Créez un bucket S3
Il existe plusieurs façons de créer un bucket S3, mais pour ce tutoriel, nous utiliserons la ligne de commande Ubuntu (CMD), votre terminal ou Amazon CloudShell, selon ce avec quoi vous êtes le plus à l’aise.
-
Tapez boto3 s3 dans la barre de recherche web pour consulter une liste de la documentation associée.
-
Cliquez sur le premier résultat.
- Une fois la documentation ouverte, copiez la première commande que vous voyez.
- Collez-la dans votre CMD OU terminal de votre choix – mais avant cela, n’oubliez pas de « cd » dans le bon répertoire.
- Dans la documentation, faites défiler vers le bas et cliquez sur « create_bucket.
-
Une fois ouvert, faites défiler vers le bas jusqu’à « Request Syntax. » Copiez le nom du bucket et la configuration du bucket.
-
D’autres variables listées dans la syntaxe de la demande sont optionnelles.
- Une fois cela fait, assurez-vous de sauvegarder.
- Retournez et appelez le script :
#python3 votre nom de fichier
- L’exécution du script crée automatiquement un bucket S3 dans votre Amazon S3.
- Maintenant, vous pouvez aller dans la console pour vérifier s’il a été créé :
Télécharger des fichiers
Avec le bucket créé, nous pouvons maintenant télécharger des fichiers via la console. Je crois qu’il existe également un moyen programmatique de télécharger des fichiers et de tester, mais je n’ai pas encore exploré toutes les méthodes dans la documentation.
Cliquez sur le nom du bucket pour être redirigé vers la page des objets. C’est là que vous téléchargerez vos fichiers pour le stockage.
Cliquez sur le bouton Télécharger pour télécharger un fichier. N’oubliez pas, nous créons une application de citation de manifestation d’objectifs.
Maintenant que nous avons configuré un bucket de stockage :
-
Ouvrez un outil comme Google Drive, MS Word, WPS ou tout autre éditeur de documents.
-
Notez les objectifs que vous souhaitez atteindre.
-
Enregistrez le fichier au format PDF ou DOCX.
-
Prenez le document et téléchargez-le sur votre Amazon S3.o
Pour vérifier s’il s’agit du bon fichier :
-
Accédez à l’onglet Permissions.
-
Faites défiler vers le bas jusqu’à Bloquer l’accès public.
-
Cliquez sur Modifier et décochez la case.
Comme indiqué ci-dessus, il est actuellement réglé sur « activé ». Décochez-le pour le désactiver.
-
Sur la même page de paramètres du bucket, modifiez la politique.
-
Faites défiler vers le bas, et vous verrez qu’une politique de bucket a été générée automatiquement.
-
Allez-y et copiez la politique.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
- Retournez à l’éditeur de politique de bucket et collez la politique.
Une fois que vous avez terminé ces étapes, votre objet aura un accès public.
Retournez à l’onglet Objets et cliquez sur l’URL de l’objet fournie ci-dessous :
Avec cette URL, votre téléchargement est maintenant visible.
Étape 3 : Créer un service de notification simple Amazon (SNS)
SNS est un service de messagerie entièrement géré proposé par AWS. Il permet la communication entre les applications ou directement avec les utilisateurs en envoyant des notifications.
Pour créer un SNS, suivez ces étapes :
1. Connectez-vous à la console de gestion AWS
Ensuite, allez sur Amazon SNS. Accédez au tableau de bord SNS et sélectionnez Sujets dans le menu de gauche.
Pour créer un sujet :
-
Cliquez sur Créer un sujet.
-
Choisissez un Type de sujet : Standard (par défaut) ou FIFO (pour des messages ordonnés).
-
Entrez un nom pour votre sujet. (par exemple,
MyFirstSNSTopic
). -
Configurez des paramètres optionnels comme le chiffrement, les politiques de réessai de livraison ou les étiquettes.
-
Cliquez sur Créer un sujet.
2. Ajouter des abonnements :
Une fois le sujet créé, cliquez dessus pour ouvrir la page des détails. Sélectionnez l’onglet Abonnements.
Cliquez sur Créer un abonnement et choisissez :
-
Le protocole peut être Email, SMS, HTTP/S, Lambda ou SQS.
-
Les points de terminaison tels qu’une adresse email, un numéro de téléphone ou une URL.
Cliquez sur Créer un abonnement.
3. Confirmer l’abonnement :
Si vous avez sélectionné un e-mail ou un SMS, un lien ou un code de confirmation sera envoyé au point de terminaison fourni. Suivez les instructions pour confirmer l’abonnement.
Maintenant que nous avons fait cela, créons une fonction Amazon Lambda qui déclenchera le SNS afin que le message soit envoyé à votre mail.
Étape 4 : Créer une politique IAM
Cette politique est créée pour autoriser Amazon Lambda à déclencher l’événement et pour s’assurer que CloudWatch est automatiquement déclenché pour surveiller les événements de l’application.
Pour créer une politique, suivez ces étapes :
1. Connectez-vous à la console de gestion AWS.
Dans le menu de gauche, sélectionnez Politiques. Ensuite :
-
Cliquez sur Créer une politique.
-
Sélectionnez l’onglet Visuel, puis sélectionnez le service SNS.
-
Ensuite, cliquez sur l’onglet Choisir pour créer une politique personnalisée.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:REGION:ACCOUNT_ID:goal_topic"
}
]
}
Ensuite, remplacez les espaces réservés suivants par vos informations :
-
region
: Votre région AWS (par exemple,us-east-1
). -
account-id
: Votre ID de compte AWS. -
topic-name
: Le nom de votre sujet SNS.
2. Voir et créer la politique :
Vous pouvez le faire en suivant ces étapes :
-
Cliquez sur le bouton Revoir.
-
Donnez à votre politique un Nom (par exemple,
LambdaSNSPolicy
), et éventuellement, une Description. -
Cliquez sur Créer une politique.
3. Attacher la politique au rôle d’exécution Lambda
Maintenant, vous devez attacher la politique à votre rôle d’exécution Lambda. Pour ce faire, suivez ces étapes :
-
Allez dans la section Rôles dans la console IAM.
-
Cherchez et sélectionnez le rôle d’exécution.
-
Ensuite, recherchez la politique que vous venez de créer et sélectionnez-la.
-
Cliquez sur Attacher la politique.
Les deux politiques seront automatiquement attachées.
Étape 5 : Créer une fonction Amazon Lambda
Amazon Lambda est un service d’AWS qui vous permet d’exécuter du code sans gérer de serveurs. Vous téléchargez votre code, et Lambda l’exécute automatiquement et le met à l’échelle si nécessaire.
Suivez ces étapes pour créer une fonction Amazon Lambda :
1. Connectez-vous à la console de gestion AWS:
Accédez à AWS Lambda.
2. Créer une fonction:
Cliquez sur Créer une fonction et choisissez l’option Auteur à partir de zéro.
Remplissez les détails :
-
Nom de la fonction: Entrez un nom unique (par exemple,
SNSLambdaFunction
). - Runtime: Sélectionnez l’environnement d’exécution (par exemple, Python, Node.js, Java, etc.).
- Rôle: Choisissez ou créez un rôle. Si vous avez déjà un rôle, sélectionnez Utiliser un rôle existant. Sinon, sélectionnez Créer un nouveau rôle avec des autorisations Lambda de base.
- Cliquez sur le Bouton Créer la fonction.
3. Collez le code:
Sur la page de la fonction Lambda, allez à l’onglet Configuration :
Rappelez-vous, nous essayons d’obtenir une citation. J’ajouterai l’ARN du sujet que nous avons créé ici et inclurai mes clés API. Mais pour ce tutoriel, j’utiliserai directement l’API pour récupérer les données.
4. Écrivez le code Lambda :
Allez dans l’onglet Code de votre fonction Lambda. Ensuite, écrivez ou collez le code de votre IDE pour traiter les messages SNS entrants.
Exemple :
Voici le code :
import os
import json
import urllib.request
import boto3
def fetch_random_quote():
"""
Fetches a random quote from the ZenQuotes API.
"""
api_url = "https://zenquotes.io/api/random"
try:
with urllib.request.urlopen(api_url) as response:
data = json.loads(response.read().decode())
if data and isinstance(data, list):
# Formater la citation et l'auteur
quote = data[0].get("q", "No quote available")
author = data[0].get("a", "Unknown author")
return f'"{quote}" - {author}'
else:
return "No quote available."
except Exception as e:
print(f"Error fetching random quote: {e}")
return "Failed to fetch quote."
def lambda_handler(event, context):
"""
AWS Lambda handler function to fetch a random quote and publish it to an SNS topic.
"""
# Obtenir l'ARN du sujet SNS à partir des variables d'environnement
sns_topic_arn = os.getenv("SNS_TOPIC_ARN")
sns_client = boto3.client("sns")
# Récupérer une citation aléatoire
quote = fetch_random_quote()
print(f"Fetched Quote: {quote}")
# Publier la citation sur SNS
try:
sns_client.publish(
TopicArn=sns_topic_arn,
Message=quote,
Subject="Daily Random Quote to help you stay motivated and inspired to achieve your goals",
)
print("Quote published to SNS successfully.")
except Exception as e:
print(f"Error publishing to SNS: {e}")
return {"statusCode": 500, "body": "Error publishing to SNS"}
return {"statusCode": 200, "body": "Quote sent to SNS"}
5. Enregistrer :
Cliquez sur le bouton de déploiement pour enregistrer.
6. Testez votre fonction Lambda :
Allez dans l’onglet Test et créez un nouvel événement de test.
Ensuite, enregistrez et exécutez le test. Si c’est réussi, un message sera envoyé :
Cela signifie que le message a été créé pour vous
Enfin, vérifiez votre e-mail ou SMS, selon le point de terminaison que vous avez utilisé pour ce tutoriel. Dans mon cas, j’ai utilisé l’e-mail.
Étape 6 : Créer un EventBridge
Amazon EventBridge est un service qui vous aide à connecter des applications et des services AWS tels que Amazon SNS et Amazon Lambda.
Pour créer une règle Amazon EventBridge, suivez ces étapes :
1. Naviguez vers EventBridge :
Dans la barre de recherche, tapez EventBridge et sélectionnez-le dans la liste des services.
2. Créer une règle :
Dans la console EventBridge, cliquez sur Règles dans le panneau de gauche. Ensuite, cliquez sur le bouton Créer une règle.
3. Configurer les détails de la règle:
-
Nom: Entrez un nom unique pour votre règle.
-
Description (facultatif): Ajoutez une description pour expliquer ce que fait cette règle.
4. Choisir le bus d’événements:
Choisissez le bus d’événements par défaut (ou un autre bus d’événements si vous en avez créé un).
5. Définir le modèle d’événement ou le calendrier:
Pour le modèle d’événement:
-
Choisissez un service AWS comme source d’événement.
-
Choisissez le type d’événement spécifique (par exemple, un téléchargement de fichier S3 ou un changement d’état d’instance EC2).
Pour le calendrier:
- Choisissez l’option Calendrier pour exécuter la règle à intervalles réguliers (par exemple, toutes les 5 minutes).
- Cliquez sur continuer. Cela vous amène à la page des détails spécifiques où:
-
Faites défiler vers le bas et cliquez sur le planificateur cron. Le planificateur cron précise à quelle heure le message sera envoyé.
-
Sélectionnez « Désactivé » pour l’option de fenêtre temporelle flexible.
-
Vérifiez les détails de la règle pour confirmer que tout est correct.
-
Cliquez sur le bouton « Suivant » pour passer à la page Cible.
L’image ci-dessus montre quand les messages seront envoyés.
- Sur la page Cible, sélectionnez AWS Lambda pour invoquer votre fonction.
- Faites défiler vers le bas pour invoquer et choisir la fonction que vous avez créée.
- Cliquez sur le bouton « Suivant » pour continuer. Cela vous amènera à la page des paramètres. Dans la section des autorisations, sélectionnez « Utiliser la règle existante. »
- Enfin, allez à la révision et créez un emploi du temps :
- La page suivante vous montre tous les détails :
L’utilisation de l’EventBridge crée un planificateur pour les utilisateurs.
Étape 7 : Téléchargez votre code
Enfin, téléchargez votre code sur GitHub et incluez une documentation appropriée pour aider à expliquer le fonctionnement du code.
Consultez cette documentation si vous ne savez pas comment : Télécharger un projet sur GitHub.
Conclusion
Si vous avez suivi toutes ces étapes, vous aurez créé une application de citation de manifestation d’objectifs utilisant AWS Lambda, Amazon S3, Amazon SNS et Amazon EventBridge. Cette application récupère des citations motivantes et les envoie aux abonnés selon un calendrier.
Vous pouvez trouver le lien du dépôt ici.
N’hésitez pas à partager vos progrès ou à poser des questions si vous rencontrez des problèmes.
Si vous avez trouvé cet article utile, partagez-le avec d’autres.
Restez informé de mes projets en me suivant sur Twitter, LinkedIn et GitHub
Merci de votre lecture 💖.
Avertissement :
Les ressources montrées dans cet article, y compris le bucket S3 et son ARN, ont été supprimées et n’existent plus. Les détails visibles dans les captures d’écran sont utilisés uniquement à des fins de démonstration.
Source:
https://www.freecodecamp.org/news/how-to-build-an-application-with-aws-lambda/