AWS and its partner ecosystem provide tools and services which help you develop serverless applications on AWS Lambda and other AWS services. These frameworks, deployment tools, SDKs, IDE plugins, and monitoring solutions help you rapidly build, test, deploy, and monitor serverless applications. Below is a selection of tools that you can use for your serverless application development cycle.
Choose from a variety of AWS, open-source, and third-party web frameworks that simplify serverless application development and deployment. Below is a selection of popular frameworks across many supported languages.
AWS Serverless Application Model (SAM)
The AWS Serverless Application Model (AWS SAM) is an open-source framework that enables you to define and build serverless applications in simple and clean syntax. AWS SAM is natively supported by AWS CloudFormation and provides a simplified way of defining the Lambda functions, APIs, databases, and event source mappings needed by your serverless applications. The specification is available under Apache 2.0.
Also available on GitHub, the AWS SAM CLI is a complementary open-source deployment toolkit that lets you locally build, test, and debug serverless applications. To learn more, visit the AWS SAM documentation.
Continuous integration and deployment
You can build a continuous integration and delivery (CI/CD) workflow for your serverless applications using AWS Developer Tools. You can use AWS CodePipeline with the AWS Serverless Application Model to automate building, testing, and deploying serverless applications. AWS CodeBuild integrates with CodePipeline to provide automated builds. You can use AWS CodeDeploy to gradually roll out and test new Lambda function versions.
AWS CodeStar enables you to quickly develop, build, and deploy applications on AWS. AWS CodeStar provides a unified user interface, enabling you to easily manage your software development activities in one place. With AWS CodeStar, you can set up your entire continuous delivery toolchain in minutes, allowing you to start releasing code faster.
AWS CodePipeline is a continuous integration and continuous delivery service for fast and reliable application and infrastructure updates. CodePipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define.
AWS CodeBuild is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. CodeBuild scales continuously and processes multiple builds concurrently, so your builds are not left waiting in a queue.
AWS CodeDeploy is a service that automates application deployments to a variety of compute services including Amazon EC2, AWS Lambda, and instances running on-premises. CodeDeploy fully automates your application deployments eliminating the need for manual operations.
Partner ecosystem tools for CI/CD
You can use partner tools for CI/CD such as CloudBees and CodeShip.
Monitoring, logging, and diagnostics
You can monitor and troubleshoot the performance of your serverless applications and AWS Lambda functions with AWS services and third-party tools. Amazon CloudWatch helps you see real-time reporting metrics and logs for your serverless applications. You can use AWS X-Ray to debug and trace your serverless applications and AWS Lambda.
AWS X-Ray helps developers analyze and debug production, distributed applications, such as those built using a microservices architecture. You can use X-Ray to trace requests made to your serverless applications built using AWS Lambda and other services. This enables you to understand the performance of serverless applications, allowing you to pinpoint the root cause of issues so that you can address them. Visit the Lambda documentation to learn more.
Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. With CloudWatch, you can monitor metrics for AWS Lambda and many other services. All logs generated by your Lambda function code are automatically stored in CloudWatch Logs to help you troubleshoot issues. Visit the Lambda documentation to learn more.
Partner ecosystem tools for monitoring
You can use partner tools with AWS Lambda such as IOpipe, Datadog, Loggly, Splunk, and Sumo Logic.
Authoring and development
You can author code for AWS Lambda functions with AWS Cloud9 or within your existing integrated development environment (IDE) using our IDE plugins. To locally build, test, and debug serverless applications, you can use the open-source AWS SAM CLI. You can also use the AWS language SDKs to build serverless applications made of AWS Lambda functions and more using AWS APIs.
AWS SAM CLI
AWS SAM CLI is an open-source deployment toolkit that enables you to locally build, test, and debug serverless applications and AWS Lambda functions defined by AWS Serverless Application Model (AWS SAM) templates. SAM CLI can be used to test functions locally, start a local API Gateway from a SAM template, validate a SAM template, generate sample payloads for various event sources, and more. It also works with any IDE and AWS Cloud9. To install SAM CLI for Mac, Linux, or Windows, see these installation instructions.
AWS Cloud9 s a cloud-based integrated development environment (IDE) that makes it easy to write, run, and debug serverless applications. It preconfigures the development environment with all the SDKs, libraries, and plug-ins needed for serverless development.
Cloud9 also supports the Serverless Application Model (SAM) so you can use SAM templates in Cloud9 to provide a simplified way of defining resources for your serverless applications. Additionally, Cloud9 allows you to edit and debug AWS Lambda functions locally, which eliminates the need to upload your code to the Lambda console for debugging.
You can author Java code, create and upload a deployment package, and create your AWS Lambda function in Eclipse.
Visual Studio plugin with AWS Lambda
You can use pre-built templates to quickly develop and deploy .NET Core-based C# Lambda functions from Visual Studio.