Skip to main content

Lambda Function with Scheduled Events

 Scheduled events are suppose to happen at regular intervals based on a rule set. Scheduled events are used to execute Lambda function after an interval which is defined in cloudwatch services. They are best used for working on cron jobs along with AWS Lambda. This chapter will explain with simple example how to send mail after every 5 minutes using scheduled events and AWS Lambda.

Requisites

The requirements for using Lambda function with Scheduled events are as follows −

  • Verify email id using AWS SES
  • Create Role to use AWS SES, Cloudwatch and AWS Lambda
  • Create Lambda Function to send email
  • Add rule for scheduled events from AWS CloudWatch
Example

The example that we are going to consider will add CloudWatch event to the AWS Lambda function. Cloudwatch will trigger AWS Lambda based on the time pattern attached to it. For Example, in the example below we have used 5 minutes as the trigger. It means for every 5 minutes, AWS Lambda will be triggered and AWS Lambda will send mail whenever triggered.

The basic block diagram for the same is shown below −

Basic Block Diagram
Verify Email ID using AWS SES

Log in to AWS and go to AWS SES service as shown below −

Customer Engagement

Now, click Simple Email Service as shown −

Simple Email

Click Email Addresses on left side as shown −

Email Address

It displays a button Verify a New Email Address. Click it.

Verify Email Address

Enter Email Address you want to verify. Click Verify This Email Address button. You will receive mail from AWS on that email id with email subject: Amazon Web Services – Email Address Verification Request in region US East (N. Virginia)

Click the link given in the mail to verify email address. Once verified, it will display the email id as follows −

Display Email
Create Role to use AWS SES, Cloudwatch and AWS Lambda

You can also create a role which gives permission to use the services. For this, go to IAM and select Role. Add the required policies and create the role. Observe that the role created here is events with lambda.

Event With Lambda
Create Lambda Function to Send Email

You will have to follow the steps to create Lambda function using runtime as nodejs.

Lambda Event Emails

Now, add trigger to Lambda as shown −

Add Triggers Lambda

Add details to CloudWatch Events Trigger as shown below −

Cloudwatch Events

Note that the event will be triggered after every 5 minutes as per the rule trigger created.

The Lambda code for sending an email is given below −

var aws = require('aws-sdk');
var ses = new aws.SES({
region
: 'us-east-1'
});
exports
.handler = function(event, context, callback) {
var eParams = {
Destination: {
ToAddresses: ["xxxxxxxt12@gmail.com"]
},
Message: {
Body: {
Text: {
Data: "this mail comes from aws lambda event scheduling"
}
},
Subject: {
Data: "Event scheduling from aws lambda"
}
},
Source: "coxxxxxx@gmail.com"
};
console
.log('===SENDING EMAIL===');
var email = ses.sendEmail(eParams, function(err, data) {
if (err) console.log(err);
else {
console
.log("===EMAIL SENT===");
console
.log("EMAIL CODE END");
console
.log('EMAIL: ', email);
context
.succeed(event);
callback
(null, "email is send");
}
});
};

Now, we need the AWS SES service. You can add this using the code shown as follows −

var aws = require('aws-sdk');
var ses = new aws.SES({
region: 'us-east-1'
});

To send mail from nodejs, we have created eParams object which has details like the example mail, to mail id and the body with message as follows −

var eParams = {
Destination: {
ToAddresses: ["xxxxxxxx12@gmail.com"]
},
Message: {
Body: {
Text: {
Data: "this mail comes from aws lambda event scheduling"
}
},
Subject: {
Data: "Event scheduling from aws lambda"
}
},
Source: "coxxxxxx@gmail.com"
};

The Lambda code to send email is as follows −

var email = ses.sendEmail(eParams, function(err, data) {
if (err) console.log(err);
else {
console.log("===EMAIL SENT===");
console.log("EMAIL CODE END");
console.log('EMAIL: ', email);
context.succeed(event);
callback(null, "email is send");
}
});

Now, let us save this Lambda function and check the email id for mails. The screenshot shown below shows that the mail is sent from AWS Lambda after every 5 minutes.

Event Scheduling

Comments

Popular posts from this blog

Lambda Function with Amazon SNS

  Amazon SNS is a service used for push notification. In this chapter, we will explain working of AWS Lambda and Amazon SNS with the help of an example where will perform the following actions − Create Topic in SNS Service and use AWS Lambda Add Topics to CloudWatch Send SNS text message on phone number given. Requisites To create Topic in SNS Service and use AWS Lambda Add Topics to CloudWatch, we need not follow the steps given below − Create Topic in SNS Create Role for permission in IAM Create AWS Lambda Function Publish to topic to activate trigger Check the message details in CloudWatch service. To send SNS text message on phone number given, we need to do the following − Add code in AWS Lambda to send message to your phone. Example In this example, we will create a topic in SNS. When details are entered in the topic to publish, AWS Lambda is triggered. The topic details are logged in CloudWatch and a message is sent on phone by AWS Lambda. Here is a basic block diagram which...

Building the Lambda Function

AWS Lambda function executes a code when it is invoked. This chapter discusses all these steps involved in the life cycle of AWS Lambda function in detail. Steps for Building a Lambda function The lifecycle of Lambda function includes four necessary steps − Authoring Deploying Monitoring Troubleshooting Authoring Lambda Code AWS Lambda function code can be written in following languages − NodeJS Java, Python C# Go. We can write code for AWS Lambda using the AWS console, AWS CLI, from Eclipse IDE, from Visual Studio IDE, serverless framework etc. The following table shows a list of languages and the different tools and IDE that can be used to write the Lambda function −   NodeJS :  AWS Lambda Console | Visual Studio IDE Java : Eclipse IDE Python : AWS Lambda Console C# : Visual Studio IDE | .NET core Go : AWS Lambda Console Deploying Lambda Code Once you decide the language you want to write the Lambda function, there are two ways to deploy the code − Directly write the code in...

Lambda Function with Amazon DynamoDB

DynamoDB can trigger AWS Lambda when the data in added to the tables, updated or deleted. In this chapter, we will work on a simple example that will add items to the DynamoDB table and AWS Lambda which will read the data and send mail with the data added. Requisites To use Amazon DB and AWS Lambda, we need to follow the steps as shown below − Create a table in DynamoDB with primary key Create a role which will have permission to work with DynamoDBand AWS Lambda. Create function in AWS Lambda AWS Lambda Trigger to send mail Add data in DynamoDB Let us discuss each of this step in detail. Example We are going to work out on following example which shows the basic interaction between DynamoDB and AWS Lambda. This example will help you to understand the following operations − Creating a table called customer in Dynamodb table and how to enter data in that table. Triggering AWS Lambda function once the data is entered and sending mail using Amazon SES service. The basic block diagram that ...