Image for post
Image for post
Seismograph House at Paul lagoon, Pico, Azores, Portugal (Photo credit: R. Vicente)

What if we didn’t need an app server anymore?

Obie Fernandez
Nov 30, 2015 · 17 min read

Update: I’m writing a technical book on this topic called ‘Serverless(Dec 2015)

Update #2: Hacker News discussion here

The Quest Begins

Proof of Concept: Slack Integration

Slack Integration Setup

Image for post
Image for post
This is a very similar process to registering apps to work with Google or Facebook OAuth. Be prepared to decide what the official name of your app is and supply an icon. Slack requires the icon image dimensions to be at least 512x512.
Image for post
Image for post
The Slack page for my newly registered DueProps application led me to boilerplate for the one-click integration button

Creating a Lambda function with a blueprint

Image for post
Image for post
Image for post
Image for post
Step 2: Configure function
Image for post
Image for post
Before saving the code, you must choose a Role
Image for post
Image for post
Understanding execution roles is kind of like AWS 1o1
Image for post
Image for post
Step 3: Configure endpoints
Image for post
Image for post

Early Testing

Image for post
Image for post
Image for post
Image for post
OAuth for Slack integration. Hmm, maybe I should add some commands soon
Image for post
Image for post
Image for post
Image for post
Log statement with {} where my request parameters should be
Image for post
Image for post
Boxes!
Image for post
Image for post
Telling API Gateway that I care about certain URL Query String Parameters
Image for post
Image for post
I found this screen particularly non-intuitive
Image for post
Image for post
Don’t forget to deploy your API Gateway configuration!

Making Progress

DynamoDB for NoSQL storage

Image for post
Image for post
Image for post
Image for post
Seriously?

Tribulations encountered trying to redirect the browser

Diversionary tactic, a new function

Image for post
Image for post
Image for post
Image for post
Private data mangled with …
Image for post
Image for post
Button replaced with data stored on DynamoDB

A new morning, a new solution

Image for post
Image for post
Image for post
Image for post

It works!

Using Stage Variables to set our hostname

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Pointing the callback to my dev stage, manually

Concluding thoughts and future topics

In Pursuit of Serverless Architecture

Modern web and mobile development with Amazon Web Services

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store