The project named Serverless that helps you build “serverless” apps (with a name that makes it difficult to Google anything).
Concepts/Things to Know
Serverless Framework (Traditional) - This is the client-side tool which turns your YAML into CloudFormation templates??
Serverless Components - This is where your code is pushed up to serverless.com to the “Components Engine”, where it does some magic and pushes it to the cloud provider. Note that this means that serverless.com will receive your AWS credentials.
- All the Serverless Components are on GitHub
- Components abstract away much of the provider-specific info. Instead that sort of stuff is calculated server-side (by serverless.com), so you have much less local configuration.
- Components are also required for
serverless devreal-time dev mode.
npm i -g serverless first. Then:
Create an app in the Serverless web console, from one of the starter templates, or from an existing local Serverless Framework project.
Use the command
serverless init xxxxxxwhere
xxxxxxis an ID of a new app which has been generated by the web console.
serverless deployto deploy to public cloud.
The client will create a CloudFormation stack and apply it, upload the necessary resources to the cloud provider.
Or, in an existing project
cd my-project/ # To create a Lambda sls init aws-lambda-starter -d my-api # To create a DynamoDB sls init aws-dynamodb-starter -d my-database
Working with components.
serverless registry to see the list of serverless components available:
$ serverless registry serverless ⚡registry Run "serverless init <package>" to install a template... • fullstack-app - https://github.com/serverless-components/fullstack-app • express-starter - https://github.com/serverless-components/express/tree/master/templates/express-starter • react-starter - https://github.com/serverless-components/website/tree/master/templates/react-starter • graphql-starter - https://github.com/serverless-components/graphql/tree/master/templates/graphql-starter • aws-lambda-starter - https://github.com/serverless-components/aws-lambda/tree/master/templates/aws-lambda-starter • aws-dynamodb-starter - https://github.com/serverless-components/aws-dynamodb/tree/master/templates/aws-dynamodb-starter • aws-iam-role-starter - https://github.com/serverless-components/aws-iam-role/tree/master/templates/aws-iam-role-starter • aws-lambda-layer-starter - https://github.com/serverless-components/aws-lambda-layer/tree/master/templates/aws-lambda-layer-starter Find more here: https://github.com/serverless-components
“service” property is missing in serverless.yml
- This seems to happen when you use the newer “Serverless Components” approach, instead of the old method of defining a
servicename in your serverless.yml file.
- Not really sure why this happens.
- I can’t do
serverless dashboardin the root directory of a Serverless Components project either.
On a React front-end site,
sls deploy fails with “Command failed: npm run build…“:
- No cause for the error is shown, or the error is swallowed up by npm/sls. So the real reason for the failed build can be hidden, for some reason.
- Manually run
npm run build, which should show the reason for the failure.