Skip to content

Compilation of rules to validate infrastructure-as-code templates against recommended practices for serverless applications.

License

Notifications You must be signed in to change notification settings

awslabs/serverless-rules

Serverless Rules

The Serverless Rules are a compilation of rules to validate infrastructure as code template against recommended practices. This currently provides a module for cfn-lint and a plugin for tflint.

You can use those rules to get quick feedback on recommended practices while building a serverless application, as part of automated code review process, or as guardrails before deploying to production.

📜Documentation | 🐍PyPi

PUBLIC PREVIEW: this project is currently in public preview to get feedback from the serverless community. APIs, tools, and rules might change between the beginning of public preview and version 1.

You can find a list of currently supported rules in the documentation.

Usage guide

cfn-lint

To get started with Serverless Rules and cfn-lint, install cfn-lint-serverless module: pip install cfn-lint cfn-lint-serverless

You can now instruct cfn-lint to use Serverless Rules module installed previously via --append-rules or -a for short:

cfn-lint my_template.yaml -a cfn_lint_serverless.rules

You can try with a Serverless Application Model (SAM) example provided in this repository by running:

cfn-lint examples/sam/template.yaml -a cfn_lint_serverless.rules

tflint

This plugin depends on tflint. If you use tflint version 0.29 or newer, you can leverage the tflint --init command to automatically install the plugin. Otherwise, you will need to download the tflint-ruleset-aws-serverless binary corresponding to your system from the releases page.

You can enable the Serverless Rules plugin by adding a plugin section in the .tflint.hcl file in your project:

plugin "aws-serverless" {
  enabled = true
  version = "0.3.2"
  source = "github.com/awslabs/serverless-rules"
}

Contributing

See CONTRIBUTING to learn how to contribute to this project.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.