"Serverless" express

22
"Serverless" Express @AnnaGerber

Transcript of "Serverless" express

Page 1: "Serverless" express

"Serverless"  Express@AnnaGerber

Page 2: "Serverless" express

Before  you  start

You’ll  need:• An  AWS  account  • An  IAM  user  with  permissions  for  AWS  Lambda,  API  Gateway,  CloudFormation,  DynamoDB,  S3  and  CloudWatch• Recent  version  AWS-­‐CLI  installedhttps://aws.amazon.com/cli/

Page 3: "Serverless" express

aws-­‐serverless-­‐express

Library  for  using  AWS  Lambda  and  Amazon  API  Gateway  with  Express

git clone  https://github.com/awslabs/aws-­‐serverless-­‐express

See  example directory  for  sample  app

Page 4: "Serverless" express

AWS  Lambda

Page 5: "Serverless" express

API  Gateway

Page 6: "Serverless" express

Cloud  Formation

Page 7: "Serverless" express

Example  app

Page 8: "Serverless" express

AWS  SAM

• Serverless Application  Model• JSON  or  YAML• Defines  API  Gateway  APIs,  Lambda  functions,  DynamoDB tables

Page 9: "Serverless" express

Configure  the  Sample  app

Page 10: "Serverless" express

Setup

npm run  setup

Page 11: "Serverless" express

Cloud  Formation  Stack

Page 12: "Serverless" express

Stack  Outputs

Page 13: "Serverless" express

Example  app

Page 14: "Serverless" express

DynamoDB

Page 15: "Serverless" express

Persisting  data  to  DynamoDB

To  persist  users  to  DynamoDB:• Add  DynamoDB permissions  to  the  role• Create  DynamoDB table  for  storing  users• Modify  the  CRUD  routes  in  our  Express  app  to  use  DynamoDB instead  of  in-­‐memory  array

Page 16: "Serverless" express

Update  role  permission

Page 17: "Serverless" express

Create  Table  Users

Page 18: "Serverless" express

Modify  the  routes

• Add  the  AWS  SDK  for  DynamoDB support• npm install    -­‐-­‐save  aws-­‐sdk

var AWS  =  require("aws-­‐sdk")var docClient =  new  AWS.DynamoDB.DocumentClient()

Page 19: "Serverless" express

Create  a  User

Page 20: "Serverless" express

List  Users

Page 21: "Serverless" express

List  a  specific  User

Page 22: "Serverless" express

Develop  your  API

• Continue  to  develop  as  for  regular  express  app• Logs  for  the  app  can  be  accessed  via  CloudWatch• Edit  package.json to  ensure  additional  resources  are  packaged• To  re-­‐package  and  re-­‐deploy  the  app:

• npm run  package-­‐deploy

• To  tear  down:• npm run  delete-­‐stack