A Node.js wrapper for AWS SAM CLI for local testing of Lambda functions.
npm i -D @millihq/sammy # npm
yarn add -D @millihq/sammy # or yarn
Assuming you have a Lambda function with the following content:
// handler.js
exports.handler = async function (event, context) {
return {
isBase64Encoded: false,
statusCode: 200,
body: 'Hello World!',
headers: {
'content-type': 'application/json',
},
};
};
which is packaged into a compressed zip file called lambda.zip
.
You can now start the Lambda function locally and access it through an API-Endpoint:
import * as path from 'path';
import { generateAPISAM, APISAMGenerator } from '@millihq/sammy';
const lambdaSAM = await generateAPISAM({
lambdas: {
first: {
filename: 'lambda.zip',
handler: 'handler.handler',
runtime: 'nodejs16.x',
route: '/test',
method: 'get',
},
},
cwd: process.cwd(),
});
const response = await lambdaSAM.sendApiGwRequest('/test');
console.log(await response.text());
// => Hello World!
Apache-2.0 - see LICENSE for details.