DEV Community

loading...
Cover image for Quick notes to use the serverless framework to deploy a Node project on AWS

Quick notes to use the serverless framework to deploy a Node project on AWS

rounakcodes
Self taught. Full Stack Developer. More than 4 years of experience. Currently working on scaling a SaaS product.
・2 min read

Intro

serverless framework consists of an open source CLI and a hosted dashboard to provide you with full serverless application lifecycle management.

The purpose of the article is to provide you a quick configuration to get started with it.

Install serverless cli

npm i -g serverless

Configure serverless to use AWS

serverless config credentials --provider aws --key <access-key-id> --secret <secret-access-key> --profile <profileName>

If you do not wish to provide secrets in the shell, use ~/.aws/credentials file to save credentials in the following format:

[<Enter profile name here>]
aws_access_key_id=*********
aws_secret_access_key=***************
[<Enter another profile name here>]
aws_access_key_id=*******************
aws_secret_access_key=**********************
Enter fullscreen mode Exit fullscreen mode

Create a new project (nodejs)

serverless create --template aws-nodejs --path myServerlessProject

The following files are created:
handler.js
.npmignore
serverless.yml

In serverless.yml, add profile and region
image

Deploy to AWS

In a shell, run
sls deploy

After every change in serverless.yml, you must run this command to deploy the changes.

Add a S3 bucket

In serverless.yml add:

image

Add a plugin

In a shell, run

npm i --save serverless-s3-sync

In serverless.yml add:

image

Configure the plugin

Example configuration for s3sync plugin

image

Add lambda functions

In serverless.yml add:

image

Enable debug when deploying

In a shell, run
SLS_DEBUG=* sls deploy

Example config of serverless.yml

image

Discussion (3)

Collapse
rounakcodes profile image
rounakcodes Author • Edited

If anyone can tell me how to insert yaml in a dev.to article, I will replace the images. Using code blocks in markdown for yaml code removed indentation.

Collapse
tastefulelk profile image
Sebastian Bille • Edited

You should be able to do triple backticks followed by "yml" to inline markdown code!

''' yml
yaml code here
'''
But replace ' with ` gives ⬇️

yml
resources:
Resources:

Collapse
rounakcodes profile image
rounakcodes Author • Edited

Thanks for the reply @tastefulelk . This is how I used it: dev-to-uploads.s3.amazonaws.com/up...

However, the solution did not work. The indentation is not respected.