-
Notifications
You must be signed in to change notification settings - Fork 107
Serverless Framework Support
Open source serverless framework is a great tool in serverless ecosystem that developers can use to design and deploy their serverless applications to public cloud services like AWS. Developers can pick and choose services from a plethora of serverless offerings from AWS (& others) to design their applications. Also, they can use its rich plugin ecosystem to locally test their serverless applications (if they wish)! If this sounds interesting, checkout some of the examples published here.
Jazz now supports serverless framework! Developers can create their application definitions (or simply serverless.yml
files!) using Jazz UI and deploy their applications to cloud. Or, they can simply commit them to SCM (BitBucket/Gitlab) along with their code and Jazz will take care of deploying the service to the cloud. Along with deployment, Jazz will take care of all the operational readiness aspects of your application (like CI/CD, logs, metrics, tracking deployments, assets etc.) to make your application production ready from day 1!
This document provides step-by-step instructions on how to leverage Jazz & serverless framework to create and manage your serverless applications.
- Create Service
- Application Definition
- Tracking Assets
- Deployment Workflow
- Supported Resources
- UI Walkthrough
- Examples for application definitions
- Additional Notes
Head over to create service screen in Jazz UI. Along with the existing service types, you should see “custom” as a new service type. Click "custom" to begin with creating serverless framework based service in Jazz. Provide other details like target cloud provider, service name, namespace etc. You can also provide your application definition (more on this below) during service creation. Click other details and hit "Submit" to create your serverless service!
You'll need a way to design your application when you use serverless framework. This specification (or the application definition!) is simply the serverless.yml
file content that you would typically use with your serverless framework based services. If you have it already, you can provide it during service creation so that Jazz will create a serverless.yml
file along with the service template and push it to your code repository. Now that you have the file in your repository, you can then make changes and have them deployed to respective jazz environments based on jazz development workflow. It is important to note that Jazz platform will update this serverless.yml
file by applying several best practices like adding tags, use naming conventions for assets etc. You can view the final updated serverless.yml
file in Jazz UI under environment view.
You can track all the assets created using Jazz using Jazz UI. You can filter them using the environment, asset type etc. All the assets will be tagged based on the metadata that Jazz captures during service creation. To track the assets outside Jazz (for example, directly in AWS console), it is important to specify the correct application name during service creation.
Nothing really changes with how developers interact with Jazz to manage their serverless application. Developers can simply focus on code to deliver business value and leave the infrastructure configuration and management to Jazz.
Jazz maintains a whitelist of resource types that are allowed to be provisioned through Jazz. This is in place to provide a framework to allow Jazz administrators to control what other developers can define and deploy. This list can be updated by Jazz administrators as per their enterprise requirements. Following are the list of resources that are allowed as part of default Jazz installation -
- DynamoDB
- API Gateway
- Lambda
- S3
- CloudFront
- Lambda@Edge
- SQS
- Kinesis
- IAM
- Cloud Watch Events
- Schedule - Cron
- Schedule - Rate
- S3
- SQS
- Kinesis streams
- DynamoDB streams
- Http
- serverless-webpack
- serverless-appsync-plugin
- serverless-step-functions
- serverless-plugin-warmup
- serverless-plugin-typescript
- serverless-plugin-canary-deployments
- serverless-mocha-plugin
- serverless-kms-secrets
- serverless-iam-roles-per-function
- serverless-plugin-cloudfront-lambda-edge
See Serverless Examples.
- Make sure that your application definition conforms to the supported resources in the whitelist published above. Deployment workflow will fail during validation step if unsupported resources are used in the application definition. Contact your Jazz administrators if you need additional resources to be whitelisted.
- Some of the parameters in the
serverless.yml
file will always be overridden by Jazz for compliance and governance purposes. You should see the final version applied to an environment in Jazz UI under each environment.
Create! Manage! Self-service!