KEMBAR78
Serverless NodeJS With AWS Lambda | PDF
GoingServerless
WITH AWS LAMBDA + NODEJS
JSJakartaJakarta JavaScript User Group
ABOUT ME
HI, I’M RIZA
riza@hacktiv8.com
facebook.com/rizafahmi
github.com/rizafahmi
medium.com/@rizafahmi22
@rizafahmi22
appscoast.id
Nov‘13
First Meetup
1.459
Members
26
Meetup Events

Held
100-ish
Attendees per month
meetup.com/JakartaJS
JSJakartaJakarta JavaScript User Group
https://meetup.com/JakartaJS
https://jakartajs-join.herokuapp.com
JSJakartaJakarta JavaScript User Group
Serverless
“ANewCloudComputingTrendThat
ChangesTheWayYouThinkAbout
WritingAndMaintainingApplications”
Tomasz Janczuk
Chief Architect for Webtasks at Auth0
ThePieces
Lambda
EC2
EC2 Container
Service
Elastic
Beanstalk
Lambda
WhatLambdaReallyIs
WhyYouShouldUseLambda
Auto Scaling
Secure
Autoscale
AutoscaleAllTheWay!
2010
2014 AWS Lambda
2016 Google Cloud Functions
Microsoft Azure Functions
2015 Webtask Rad
TonicDev
FunctionsServiceTimeline
APIGateway
Databases
OtherServices
“Serverless”Infrastructure
UseCases
ScalableAPI
ScheduledTasks
IndexingandSync
AutomationandiOT
Auditand
Notification
Pricing
Free Tier
1MRequest
3MSeconds
of compute time
LambdaFunction
Our very first
GettingStarted
ChooseYourWeapon
Triggers
WriteYourCode
1 'use strict';
2 console.log('Loading function');
3
4 exports.handler = (event, context, callback) 
=> {
5 let min = 1
6 let max = 10
7
8 let random_number = Math.floor(Math.random() *
9 max) + min
10 let mark = ""
11 for (let i=min; i<random_number; i
++)
12 mark = mark + "!"
13
14 callback(null, "Hello Bandung" + mark)
15 }
Zoomingintocode…
Settingitup!
Testit
ConnectingLambda
ToAPIGateway
CreateNewAPI
ConnectToLambdaFunction
Publishit
Testit
SlackBotServerless
AddSlackWebHookConfig
TheCode
1 const AWS = require('aws-sdk')
2 const db = new AWS.DynamoDB.DocumentClient({region: 'ap-southeast-1'})
3
4 exports.handler = (event, context, callback) 
=> {
5 console.log(event)
6 if (event.user_name) {
7 const params = {
8 Item: {
9 date: Date.now(),
10 user_name: event.user_name
11 },
12 TableName: 'report_log'
13 }
14 db.put(params, (err, data) 
=> {
15 context.succeed({
16 "response_type": "in_channel",
17 "text": "Hi " + event.user_name +"! It's time for standup meeting."
18 })
19 })
20 }
21 };
SettingUpTheDatabase
SettingUpTheDatabase
PermissionToUseTheDB
TheTrigger
Publishit
Hookit
Hookit
Runit
OurAutoscalingAndMaintenanceFreeBotIsFinished
NowLet’sBuildSkynet!
JSJakartaJakarta JavaScript User Group

Serverless NodeJS With AWS Lambda