AWS Lambda
This tutorial uses @upstash/redis which is designed for serverless runtimes for efficient connection handling. You can use your favorite Redis client, but you may have to deal with connection issues as described here.
Database Setup
Create a Redis database using Upstash Console or
Upstash CLI. Select the same region with your
AWS Lambda to minimize the latency. Copy the UPSTASH_REDIS_REST_URL
and
UPSTASH_REDIS_REST_TOKEN
for the next steps.
Project Setup
We will use Serverless Framework but you can use AWS SAM or others.
Run npx serverless
and select the AWS - Node.js - HTTP API
npx serverless
Creating a new serverless project
? What do you want to make? AWS - Node.js - HTTP API
? What do you want to call this project? aws-node-http-api-project
✔ Project successfully created in aws-node-http-api-project folder
? Do you want to login/register to Serverless Dashboard? No
? Do you want to deploy now? No
What next?
Run these commands in the project directory:
serverless deploy Deploy changes
serverless info View deployed endpoints and resources
serverless invoke Invoke deployed functions
serverless --help Discover more commands
Install dependencies:
cd aws-node-http-api-project
npm init -y
npm install @upstash/redis
The Code
Update handler.js
as below and replace UPSTASH_REDIS_REST_URL
and
UPSTASH_REDIS_REST_TOKEN
:
const { Redis } = require("@upstash/redis/with-fetch");
module.exports.hello = async (event) => {
const redis = new Redis({
url: "UPSTASH_REDIS_REST_URL",
token: "UPSTASH_REDIS_REST_TOKEN",
});
const data = await redis.incr("counter");
return {
statusCode: 200,
body: JSON.stringify({
view_count: data,
}),
};
};
Deploy
Deploy your function with npx serverless deploy
The endpoint of the AWS Lambda function will be printed.
Repo
https://github.com/upstash/upstash-redis/tree/main/examples/aws-lambda
Was this page helpful?