Maison >interface Web >js tutoriel >Planifier des événements dans EventBridge avec Lambda
Dans cet article de blog, nous explorerons comment planifier des événements à l'aide d'AWS EventBridge Scheduler et d'AWS Lambda. Cette méthode est efficace et évolutive, garantissant que votre application peut gérer plusieurs événements planifiés sans créer un désordre de règles EventBridge individuelles. Allons-y !
AWS EventBridge est un service de bus d'événements sans serveur qui facilite la connexion d'applications à l'aide des données de vos propres applications, d'applications Software-as-a-Service (SaaS) intégrées et des services AWS. EventBridge fournit un flux de données en temps réel à partir de sources d'événements et achemine ces données vers des cibles telles qu'AWS Lambda, Amazon SNS, etc.
AWS Lambda est un service de calcul sans serveur qui vous permet d'exécuter du code sans provisionner ni gérer de serveurs. Vous pouvez déclencher les fonctions Lambda directement à partir d'autres services AWS, tels que S3, DynamoDB ou EventBridge, et passer automatiquement de quelques requêtes par jour à des milliers par seconde.
Avant de commencer, assurez-vous d'avoir les éléments suivants :
Tout d'abord, nous devons créer un rôle IAM qui permettra à AWS EventBridge Scheduler d'appeler votre fonction Lambda.
Accédez à la console IAM : accédez à la console IAM, choisissez Rôles dans le volet de navigation de gauche, puis cliquez sur Créer un rôle.
Sélectionnez une entité de confiance : choisissez Service AWS, sélectionnez Lambda et cliquez sur Suivant : Autorisations.
Joindre les stratégies : joignez les stratégies gérées suivantes :
Vérifier et créer : indiquez un nom pour le rôle, par exemple LambdaExecutionRole, vérifiez les paramètres et cliquez sur Créer un rôle.
Mettre à jour la relation de confiance : Une fois le rôle créé, accédez à la page de détails du rôle. Sous l'onglet Relations de confiance, cliquez sur Modifier la relation de confiance. Mettez à jour la politique de confiance pour inclure le service programmer.amazonaws.com :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nous allons créer une fonction Lambda qui traitera les événements planifiés.
Accédez à la console Lambda : accédez à la console Lambda, cliquez sur Créer une fonction et choisissez Auteur à partir de zéro.
Configurer la fonction Lambda : définissez le nom de la fonction sur processScheduledEvent, sélectionnez Node.js 16.x comme environnement d'exécution et utilisez le rôle existant que vous avez créé précédemment (LambdaExecutionRole). Cliquez sur Créer une fonction.
Ajouter un code de fonction : Remplacez le code par défaut par votre logique pour traiter l'événement. Par exemple, vous pouvez enregistrer les détails de l'événement ou effectuer des actions spécifiques basées sur les données de l'événement :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Maintenant, écrivons le code pour planifier un événement à l'aide d'AWS EventBridge Scheduler.
Tout d'abord, installez les modules AWS SDK nécessaires :
exports.handler = async (event) => { const eventDetails = event; // Your logic to process the event console.log("Processing scheduled event:", eventDetails); // Example: Process event // processEvent(eventDetails); return { statusCode: 200, body: JSON.stringify('Event processed successfully'), }; };
Voici un résumé des étapes de mise en œuvre de la fonction de planification :
Extrayez les détails de l'événement à partir de l'entrée de votre application. Voici un exemple :
npm install @aws-sdk/client-scheduler @aws-sdk/client-lambda
Convertissez l'heure programmée de IST (heure standard indienne) en UTC (temps universel coordonné).
const eventDetails = { name: "TEST-EVENT-01", userId: "USER123", eventId: "EVENT-001", eventTime: '2024-12-17T18:05:00+05:30' // IST time in ISO format };
Assurez-vous que la chaîne d'heure UTC est dans le format correct requis par EventBridge Scheduler (aaaa-MM-jjTHH:mm:ssZ).
const istTime = new Date(eventDetails.eventTime); // IST time const utcTime = new Date(istTime.getTime() - 5.5 * 60 * 60 * 1000); // Convert to UTC
Créez une planification EventBridge à l'aide du SDK AWS, en spécifiant l'ARN de la fonction Lambda comme cible et en incluant les détails de l'événement en entrée.
const utcString = utcTime.toISOString().split('.')[0] + 'Z';
Dans cet article de blog, nous avons parcouru le processus de configuration d'un événement planifié à l'aide d'AWS EventBridge Scheduler et de Lambda. Cette approche garantit que notre application peut gérer plusieurs événements planifiés de manière efficace et évolutive. Grâce à la puissance d'AWS, vous pouvez créer des fonctionnalités robustes qui améliorent l'expérience utilisateur et rationalisent les opérations.
Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!