Rush StackShopBlogEvents
Skip to main content

Serverless Stack plugin

Plugin package:@rushstack/heft-serverless-stack-plugin
Plugin name:serverless-stack-plugin implemented by ServerlessStackPlugin.ts
Plugin config file:(none)
heft.json options:(none)

This is a Heft plugin for building apps using the Serverless Stack (SST) framework. With this approach, the SST toolchain is only used for synthesizing CloudFormation stacks and deploying the app, and Heft takes over the role of compiling, linting, testing your TypeScript project.

When to use it

If your lambda service was built using the Serverless Stack framework.

How it works

The plugin has no effect without the --sst parameter. When the parameter is provided:

  • heft build --sst will behave similar to sst build, which synthesizes CloudFormation stacks in the build/cdk.out/ directory. See this documentation for details. Heft's build-watch mode is also supported.

  • heft start --sst will behave similar to sst start, which deploys a stub lambda to AWS and then launches the WebSocket client locally for debugging. See this documentation for details.

Note that heft build --sst currently requires AWS credentials, which limits the ability to perform this validation in a monorepo environment where we can't assume that every developer works on AWS. Issue serverless-stack#1537 is tracking a possible improvement.

Configuration

The heft-serverless-stack-tutorial sample folder illustrates a complete project setup.

CLI parameters

heft-serverless-stack-plugin/heft-plugin.json defines these parameters:

  --sst
Invokes the SST postprocessing. Requires AWS credentials.
--sst-stage STAGE_NAME
Specifies the Serverless Stack stage; equivalent to
to the "--stage" parameter from the "sst" CLI