aws april webinar series - aws lambda: event-driven code for devices and the cloud
Post on 18-Jul-2015
Embed Size (px)
2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tim Wagner, AWS Lambda General Manager
April 30, 2015
AWS Lambda: Event-driven
Code for Devices and the Cloud
Event-Driven Compute in the Cloud
Launched last November at re:Invent
Lambda functions: Stateless, request-driven code execution
Triggered by events in other services:
PUT to an Amazon S3 bucket
Write to an Amazon DynamoDB table
Record in an Amazon Kinesis stream
Makes it easy to
Transform data as it reaches the cloud
Perform data-driven auditing, analysis, and notification
Kick off workflows
Data Triggers: Amazon S3
Data Triggers: Amazon DynamoDB
AWS LambdaAmazon DynamoDB
Table and Stream
Update another table
Dynamic content generation based on
incoming news text and images
Real time log processing for
Thumbnailing installation site
photos for mobile use
Real time processing and recording of
inbound traffic from a range of social
Large scale distributed search
across blog content
Operational analytics and
real time troubleshooting
Building Backends with Lambda
Mobile Compute Request/response
AWS Mobile SDK
for end usersAWS LambdaMobile App
Event-Driven Compute in the Cloud and for Devices
Request / response
Create instantly scalable backends for mobile apps
Run stateless computations for web apps without servers
Build cloud-based IoT ecosystems using C/C++ libraries
Complements the existing asynchronous functionality
AWS Mobile SDK
Build high quality mobile apps quickly and easily.
AWS Lambda now available in:
AWS mobile SDK for Android
AWS iOS mobile SDK
Which app/device is she using?
Which end user is this?
Name and version of app,
Make and model of device,
Platform and local,
Cognito identity pool?
Demo: Building a Mobile
Backend with AWS Lambda
No Infrastructure to Manage
Focus on business logic, not infrastructure
Upload your code; AWS Lambda handles
Web service front end
Lambda scales to match the event rate
Dont worry about over or under provisioning
Pay only for what you use
New app or successful app, Lambda matches your scale
Bring Your Own Code
Create threads and processes, run
batch scripts or other executables,
and read/write files in /tmp.
Include any library with your
Lambda function code, even
Buy compute time in 100ms increments
Low request charge
No hourly, daily, or monthly minimums
No per-device fees
Never pay for idle
1M requests and 400,000 GB-s of compute.
Every month, every customer.
Using AWS Lambda
Calling Lambda Functions
Call from mobile or web apps
Wait for a response or just send an event and keep going
AWS SDK, AWS Mobile SDK, REST API, CLI
Send events from Amazon S3 or SNS:
One event per Lambda invocation, 3 attempts
Process DynamoDB changes or Amazon Kinesis records as events:
Ordered model with multiple records per event
Unlimited retries (until data expires)
100 concurrent executions and 1,000 invokes per second
Increases available via AWS customer service!
Writing Lambda Functions
AWS SDK comes built in and ready to use
Lambda handles inbound traffic
Use S3, DynamoDB, or other Internet storage for persistent data
Dont expect affinity to the infrastructure (you cant log in to the box)
Use processes, threads, /tmp, sockets,
Bring your own libraries, even native ones
Configuring the Lambda Functions
1. Pick a name.
2. Pick a size.
Set memory to any size from 128MB to 1GB, in 64MB steps
Receive an equivalent portion of other resources (disk, network, compute power, etc.)
Easy, single-dial solution to set price/performance preference.
Lambda tells you how much memory you used, so you can tune this setting.
3. Pick an event source (or several).
AWS Lambda or EC2 / ECS?
Prioritizes ease of use one OS, default hardware choice
AWS owns and manages the infrastructure
Implicit scaling; just make requests
Amazon EC2 and ECS
Flexible choose instance type, OS, language,
You own and configure the infrastructure
Scale by provisioning instances or containers
New AWS Event Sources for Lambda
Amazon Simple Notification Service (SNS)
Easily target, route, transform, filter, or audit messages
Trigger an AWS Lambda function by sending it notifications
Turn Amazon CloudWatch alarms into actions
New AWS Event Sources for Lambda
Before: Easily synchronize user data across their devices
Now: Take action when that data changes
Examples: Verify and respond to game state updates
How Can You Use These Features?
I want to send customized
SNS + Lambda
I want to send an offer when a user
runs out of lives in
Lambda + SNS
I want to transform the records in a
click stream or an
IoT data stream
Kinesis + Lambda
Cross-account access support Create functions that you can share with others
Send events from S3 buckets in a different AWS account
AWS CloudTrail integration
Track AWS Lambda API calls in AWS CloudTrail logs
Audit access logs easily with a Lambda function
AWS CloudFormation Custom Resources
Run a Lambda function any time you create, update, or delete a CloudFormation stack
Easily run custom actions without provisioning infrastructure
Improved Metrics and Diagnostics
Discover and take action with free metrics
AWS Lambda automatically monitors your functions
Amazon CloudWatch metrics for requests, errors, running time
New concurrent request throttle metric
Automated logging with time-based sorting
AWS Lambda automatically logs for you
Sort CloudWatch Logs by time of last entry
See creation time in log stream names and easily filter on it
Coming Soon: Java!
You can already call Java programs from Lambda functions
Java and other languages are automatically included in your filesystem viewdont wait to start using them!
Freezing ensures you dont pay repeatedly for JVM boot
Well make this even easier with built-in support for AWS Lambda functions written in Java.
Three Next Steps
1. Go to the AWS console to create and test your first Lambda
function. The first 1M requests each month are on us!
2. Use AWS Lambda to add custom logic to S3, DynamoDB,
SNS, Kinesis, or Cognito eventsno servers required!
3. Use the AWS Mobile SDK and Lambda to quickly create an
instantly scalable mobile app. Start by visiting
Visit http://aws.amazon.com/lambda, the AWS
Compute blog, and the Lambda forum to learn
more and get started using Lambda.