Part of the core team for the middy middleware engine for Node.js Lambda functions. A collection of helpful commands for working with AWS Lambda and related AWS services.


The project is a collection of tightly integrated tools, including:

Serverless Application Repository apps

  • lambda-janitor: cron job to delete old, unused versions of all Lambda functions in the region to free up storage space.
  • auto-subscribe-log-group-to-arn: subscribes new and existing CloudWatch log groups to a Lambda function, Kinesis stream, or Firehose delivery stream by ARN.
  • auto-set-log-group-retention: updates the retention policy for new and existing CloudWatch log groups to a specified number of days to reduce CloudWatch Logs cost.
  • async-custom-metrics: lets you record custom metrics by writing to stdout (which is recorded in CloudWatch Logs) which is then parsed and forwarded to CloudWatch metrics as custom metrics.
  • propagate-cfn-tags: propagates CloudFormation tags to resources that are not automatically tagged, e.g. CloudWatch log groups.
  • autodeploy-layer: automatically deploys a Lambda layer to all new and existing functions in the region. Supports opt-in and opt-out via function tags.
  • lambda-invocation-cfn-custom-resource: supports CloudFormation custom resource to invoke a Lambda function during deployment.
  • dazn-lambda-powertools: deploys all the packages from DAZN lambda powertools (see above) as one Lambda layer in your account.
  • cloudwatch-alarms-macro: deploys a CloudFormation macro that auto-generates CloudWatch Alarms for you based on the resources you have in a CloudFormation template.

Serverless framework plugins

Demo apps

I have published many demo apps with accompanying blog posts to illustrate techniques for building serverless applications, such as:

  • lambda-config-demo: demonstrates approaches for managing configs for Lambda functions.
  • lambda-protobuf-demo: demonstrates how to build APIs that uses protobuffer with Lambda and API Gateway.
  • lambda-saga-pattern: demonstrates how to implement the Saga pattern with Lambda and Step Functions.