Zoom Rivet comes with built-in support to deploy to AWS Lambda. It provides a default AwsLambdaReceiver to parse and emit incoming webhook events.
Import AwsLambdaReceiver from the name spaced product you want to implement.
import { AwsLambdaReceiver, ... } from "@zoom/rivet/chatbot";
When you instantiate a client class, pass a new instance of AwsLambdaReceiver to the receiver option.
const chatbotClient = new ChatbotClient({
// ...
receiver: new AwsLambdaReceiver({
webhooksSecretToken: "XXXXXXXXXXXXXXXXXXXXXX",
});
// ...
});
In your application's entry point, pass the Lambda handler to the AwsLambdaReceiver.
export const handler = async (event, context, callback) => {
const handler = await chatbotClient.start();
return handler(event, context, callback);
};
Local function testing
To test your AWS Lambda receiver without deploying to AWS for development or testing, we recommend using Serverless Framework , with the Serverless Offline plugin .
The following serverless.yml file configures the Serverless Framework to deploy a Lambda function to AWS. The function runs boot.js from the same directory when it receives an HTTP POST request to the /zoom/events endpoint.
frameworkVersion: "4"
service: serverless-rivet-js
provider:
name: aws
runtime: nodejs20.x
functions:
rivet:
handler: boot.handler
events:
- http:
path: zoom/events
method: post
plugins:
- serverless-offline
Test the function offline (locally) with the following command:
serverless offline --noPrependStageInUrl