Serverless Conventions Plugin
A Serverless framework plugin to enforce various formatting conventions to maintain consistency within Serverless applications.
List of conventions
Convention | Good Example | Bad Example |
---|---|---|
Service name must be dash delimited | this-is-a-good-name | thisIsABadName |
Service name must not contain the word "service" | this-is-a-good-name | this-is-a-bad-service |
Service name must be less than 24 characters | this-is-a-good-name | this-is-a-bad-name-because-its-too-long |
Stage must contains only lower case alphabet characters | dev | Development |
Stage must be exactly 3 characters long | prd | prod |
Handler names must have the same name as the function | functions: thisIsAWellNamedExample: handler: src/this-is-a-well-named-example.handler |
functions: thisIsABadlyNamedFunction: handler: src/this-is-a-badly-named-example.handler |
Function names must be in camel case | thisIsAWellNamedExample | ThisIsABadlyNamedExample |
Function names should not be overwritten | functions: exampleFunction: handler: src/example-function.handler |
functions: exampleFunction: name: exampleFunction handler: src/example-function.handler |
Handler names must be dash delimited | src/this-is-a-well-named-example.handler | src/ThisIsABadlyNamedExample.handler |
Handler names must end in ".handler" | src/this-is-a-well-named-example.handler | src/this-is-a-badly-named-example |
DynamoDB table names must be in kebab case | example-name-good-table-name | BadTableName |
DynamoDB table names must start with the service name | example-name-good-table-name | bad-table-name |
Serverless configuration
The plugin is configured within the serverless.yaml
by adding the plugin to the list of plugins.
plugins:
- "@aligent/serverless-conventions"
Ignoring specific checks
All checks can be ignored by specifying the check to ignore under a top level property named conventions
in serverless.yaml
.
A list of all the available ignore commands are below:
conventions:
ignore:
serviceName: true
stageName: true
handlerName: true
functionName: true
handlerNameMatchesFunction: true
dynamoDBTableName: true
Running the conventions check
The conventions check will run automatically each time you run a serverless command that compiles the packages. (e.g. serverless package
, serverless deploy
)
Alternatively, the conventions check can be run manually with serverless conventions-check
.