Quick recommendations and tips for various processes.
- Write your functions
- Use
serverless deploy
only when you've made changes toserverless.yml
and in CI/CD systems. For more information on setting up CI/CD for your Serverless app, read this article. - Use
serverless deploy function -f myFunction
to rapidly deploy changes when you are working on a specific AWS Lambda Function. - Use
serverless invoke -f myFunction -l
to test your AWS Lambda Functions on AWS. - Open up a separate tab in your console and stream logs in there via
serverless logs -f myFunction -t
. - Write tests to run locally.
- At the very least, use a
dev
andproduction
stage. - Use different AWS accounts for stages.
- In larger teams, each member should use a separate AWS account and their own stage for development.
- Break your application/project into multiple Serverless Services.
- Model your Serverless Services around Data Models or Workflows.
- Keep the Functions and Resources in your Serverless Services to a minimum.
A handy list of commands to use when developing with the Serverless Framework.
Creates a new Service
serverless create -p [SERVICE NAME] -t aws-nodejs
This is a convenience method to install a pre-made Serverless Service locally by downloading the Github repo and unzipping it.
serverless install -u [GITHUB URL OF SERVICE]
Use this when you have made changes to your Functions, Events or Resources in serverless.yml
or you simply want to deploy all changes within your Service at the same time.
serverless deploy -s [STAGE NAME] -r [REGION NAME] -v
Use this to quickly overwrite your AWS Lambda code on AWS, allowing you to develop faster.
serverless deploy function -f [FUNCTION NAME] -s [STAGE NAME] -r [REGION NAME]
Invokes an AWS Lambda Function on AWS and returns logs.
serverless invoke -f [FUNCTION NAME] \
-s [STAGE NAME] \
-r [REGION NAME] \
-l
Open up a separate tab in your console and stream all logs for a specific Function using this command.
serverless logs -f [FUNCTION NAME] -s [STAGE NAME] -r [REGION NAME]