Integrate Lambda Functions with RudderSack
Integrate AWS lambda functions with the RudderStack Node.js SDK.
AWS Lambda helps you leverage the full potential of AWS Serverless Compute, allowing you to run your code without having to manage or provision servers.
Key features
With AWS Lambda, you can:
- Run any kind of application or web service without requiring any server administration
- Pay only for computing resources that you use for your code or application
- Scale your code and make your applications highly available without requiring any additional configuration or cost
- AWS Lambda offers high performance, regardless of the scale or complexity of your code
RudderStack integrates seamlessly with AWS Lambda, allowing you to use any lambda function to transform your event streams and route them to the destinations of your choice.
Integrating AWS Lambda with RudderStack’s Node.js SDK
The AWS Lambda functions can be coded in Node.js. This makes integration with RudderStack easier, since RudderStack provides a Node.js SDK that can be seamlessly used in the AWS Lambda code. The RudderStack SDK is called by the lambda function to perform the necessary data mappings. The data is then routed to the specified analytics destinations by RudderStack.
The following steps are required for integrating the RudderStack Node.js SDK with the AWS Lambda function:
- Before getting started, make sure you have a Docker version of RudderStack server in an EC2 instance. More instructions on the setup can be found on our GitHub page.
You must have the
AWS CLI installed in your development environment.
- Install the RudderStack Node.js SDK at the location where the lambda function artifacts are maintained in the development environment:
[ec2-user@ip-172-31-44-230 ~]$ npm install --prefix=~/lambda-apps @rudderstack/rudder-sdk-node
- Archive all contents of the lambda function development directory in a ZIP file:
[ec2-user@ip-172-31-44-230 lambda-apps]$ zip -r function.zip .
- Update the lambda function deployment:
[ec2-user@ip-172-31-44-230 lambda-apps]$ aws lambda update-function-code --function-name lambda-apps-dev-helloWorld --zip-file fileb://~/lambda-apps/function.zip
Testing the integration
To ensure that the integration is successful, you can test the availability of the function at the AWS-designated web endpoint. This endpoint is created at the time of deployment of the function for the first time.
'use strict';
const Analytics = require("@rudderstack/rudder-sdk-node");
module.exports.helloWorld = (event, context, callback) => {
const response = {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*', // Required for CORS support to work
},
body: JSON.stringify({
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event,
}),
};
Questions? Contact us by email or on
Slack