SlideShare a Scribd company logo
1 of 44
Download to read offline
~ # whoami (afronski)
✓ Co-founder and Cloud Architect
at Pattern Match
Erlang, Elixir, F#, JavaScript, Python
DevOps, AWS (3 certificates)
✓ Co-organizer of Functional Miners
Problem
As a Wojtek
I want to click a button
So that I will be offline in on Slack
mashup (computer industry jargon), in web development, is a web page or web application
that uses content from more than one source to create a single new service displayed in a single
graphical interface.
The main characteristics of a mashup are combination, visualization, and aggregation. It is important to
make existing data more useful, for personal and professional use. To be able to permanently access the
data of other services, mashups are generally client applications or hosted online.
Why?
New technology?
New technology?
Experiments
AWS Lambda
Custom Runtime
Cost efficiency?
Cost efficiency?
Smaller OPEX
Cost efficiency?
Time to Market
Disclaimer:
You have to know it!
Solution
patternmatch/button-for-slack
How?
Amplify
Framework
amplify configure
amplify init
npm init react-app ui
amplify add hosting
amplify add auth
import Amplify from "aws-amplify";
import configuration from "./aws-exports";
import { withAuthenticator } from "aws-amplify-react";
Amplify.configure(configuration);
// ...
export default withAuthenticator(App, { ... });
amplify push
amplify publish
Live Demo!
CLICK
AWS IoT Button
1. MQTT
2. Equipped with WiFi and RGB LED.
3. Battery? ~2000 clicks, then it’s dead.
a. No way to recharge or replace.
4. Claiming?
a. This version needs to be either hardwired to your AWS account
and then “sold”, or users have to manually go through the
binding process (or implement custom process on your own).
b. AWS IoT 1-Click and AWS IoT Enterprise Button solve that
problem.
AWS IoT Button
{
"serialNumber": "GXXXXXXXXXXXXXXXXX",
"batteryVoltage": "NNNNmV",
"clickType": "SINGLE | DOUBLE | LONG"
}
AWS IoT Button
Live Demo!
CLICK
Pitfalls
1. Elixir Runtime for AWS Lambda.
a. Package Size
b. You own it (e.g. security patches)
2. AWS SDK for Elixir.
a. Specifications for code generators (here).
3. Slack API - OAuth2 scopes.
a. Add To Slack vs. Sign in with Slack.
4. API Gateway CORS in Lambda-Proxy mode sucks when using
Authenticators.
5. AWS IoT Button is not AWS IoT 1-Click.
6. JavaScript. 😭
Pitfalls
Blessings
1. Amazon DynamoDB, especially the new API 💕
2. AWS Amplify Framework
3. Serverless Framework
4. AWS IoT Core
Blessings
References
1. Our company - Pattern Match and my talks.
2. Repository with source code, including custom runtime for Elixir.
3. Custom AWS Lambda Runtimes.
4. AWS SDK for Elixir - ex-aws/ex_aws.
5. AWS Amplify Framework.
6. Serverless Framework.
7. AWS IoT Button - Official FAQ.
8. Slack API - Sign-in with Slack.
9. Slack API - User presence and Status.
10. Functional Miners (facebook, twitter, github, email, website).

More Related Content

What's hot

What's hot (20)

Serverless Image Rekognition with Squirrels
Serverless Image Rekognition with SquirrelsServerless Image Rekognition with Squirrels
Serverless Image Rekognition with Squirrels
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure Functions
 
Localize content Devops
Localize content DevopsLocalize content Devops
Localize content Devops
 
How to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHow to create a Function App on Cosmos DB
How to create a Function App on Cosmos DB
 
AWS July Webinar Series: Packaging Line of Business Desktops Apps using Amazo...
AWS July Webinar Series: Packaging Line of Business Desktops Apps using Amazo...AWS July Webinar Series: Packaging Line of Business Desktops Apps using Amazo...
AWS July Webinar Series: Packaging Line of Business Desktops Apps using Amazo...
 
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless StartupSam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
 
API Change Strategy
API Change StrategyAPI Change Strategy
API Change Strategy
 
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
 
Xamarin - Beyond the Basics
Xamarin - Beyond the BasicsXamarin - Beyond the Basics
Xamarin - Beyond the Basics
 
AWS Introduction By Steven Goris
AWS Introduction By Steven GorisAWS Introduction By Steven Goris
AWS Introduction By Steven Goris
 
Net core path by Ibon Landa
Net core path by Ibon LandaNet core path by Ibon Landa
Net core path by Ibon Landa
 
Rockford Web Devs Meetup - AWS - November 10th, 2015
Rockford Web Devs Meetup - AWS - November 10th, 2015Rockford Web Devs Meetup - AWS - November 10th, 2015
Rockford Web Devs Meetup - AWS - November 10th, 2015
 
Empezá a trabajar en la nube
Empezá a trabajar en la nubeEmpezá a trabajar en la nube
Empezá a trabajar en la nube
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Walk in the shoe of angular
Walk in the shoe of angularWalk in the shoe of angular
Walk in the shoe of angular
 
Elm, the runtime error killer
Elm, the runtime error killerElm, the runtime error killer
Elm, the runtime error killer
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
 
Reliability Engineering for Enterprise Serverless
 Reliability Engineering  for Enterprise Serverless Reliability Engineering  for Enterprise Serverless
Reliability Engineering for Enterprise Serverless
 
Sitecore on AWS
Sitecore on AWSSitecore on AWS
Sitecore on AWS
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation
 

Similar to Mashup! AWS Lambda, Elixir and IoT Button

AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless Recap
Daniel Zivkovic
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
Amazon Web Services
 

Similar to Mashup! AWS Lambda, Elixir and IoT Button (20)

Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 
Advanced Serverless Apps With Step Functions
Advanced Serverless Apps With Step FunctionsAdvanced Serverless Apps With Step Functions
Advanced Serverless Apps With Step Functions
 
ServerlessConf Tokyo キーノート
ServerlessConf Tokyo キーノートServerlessConf Tokyo キーノート
ServerlessConf Tokyo キーノート
 
Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)
 
Advanced Serverless Apps With Step Functions
Advanced Serverless Apps With Step FunctionsAdvanced Serverless Apps With Step Functions
Advanced Serverless Apps With Step Functions
 
AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless Recap
 
Serverless in production, an experience report (CoDe-Conf)
Serverless in production, an experience report (CoDe-Conf)Serverless in production, an experience report (CoDe-Conf)
Serverless in production, an experience report (CoDe-Conf)
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)
 
Serverless: State Of the Union
Serverless: State Of the UnionServerless: State Of the Union
Serverless: State Of the Union
 
Serverless - State Of the Union
Serverless - State Of the UnionServerless - State Of the Union
Serverless - State Of the Union
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
 
Transforming Software Development
Transforming Software DevelopmentTransforming Software Development
Transforming Software Development
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
 
Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)
 
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless CloudAWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
 
ANZ Dev Lounge Session - Feb 2017
ANZ Dev Lounge Session - Feb 2017ANZ Dev Lounge Session - Feb 2017
ANZ Dev Lounge Session - Feb 2017
 
Serverless in production, an experience report (NDC London, 31 Jan 2018)
Serverless in production, an experience report (NDC London, 31 Jan 2018)Serverless in production, an experience report (NDC London, 31 Jan 2018)
Serverless in production, an experience report (NDC London, 31 Jan 2018)
 
Serverless in production, an experience report (NDC London 2018)
Serverless in production, an experience report (NDC London 2018)Serverless in production, an experience report (NDC London 2018)
Serverless in production, an experience report (NDC London 2018)
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
 

More from Wojciech Gawroński

More from Wojciech Gawroński (9)

AWS CDK: Your Infrastructure is Code!
AWS CDK: Your Infrastructure is Code!AWS CDK: Your Infrastructure is Code!
AWS CDK: Your Infrastructure is Code!
 
Amazon SageMaker in Practice - Workshop at Big Data Moscow 2018 (10.10.2018)
Amazon SageMaker in Practice - Workshop at Big Data Moscow 2018 (10.10.2018)Amazon SageMaker in Practice - Workshop at Big Data Moscow 2018 (10.10.2018)
Amazon SageMaker in Practice - Workshop at Big Data Moscow 2018 (10.10.2018)
 
Serverless .NET on AWS
Serverless .NET on AWS Serverless .NET on AWS
Serverless .NET on AWS
 
Functional Programming in Serverless World
Functional Programming in Serverless WorldFunctional Programming in Serverless World
Functional Programming in Serverless World
 
Learn Elixir The Hard Way
Learn Elixir The Hard WayLearn Elixir The Hard Way
Learn Elixir The Hard Way
 
Functional Programming in the Wild
Functional Programming in the WildFunctional Programming in the Wild
Functional Programming in the Wild
 
Why docker@localhost is not even remotely near DevOps?
Why docker@localhost is not even remotely near DevOps?Why docker@localhost is not even remotely near DevOps?
Why docker@localhost is not even remotely near DevOps?
 
How to move a mission critical system to 4 AWS regions in one year?
How to move a mission critical system to 4 AWS regions in one year?How to move a mission critical system to 4 AWS regions in one year?
How to move a mission critical system to 4 AWS regions in one year?
 
Abusing Erlang compilation pipeline for Fun and Profit
Abusing Erlang compilation pipeline for Fun and ProfitAbusing Erlang compilation pipeline for Fun and Profit
Abusing Erlang compilation pipeline for Fun and Profit
 

Recently uploaded

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 

Recently uploaded (20)

JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
How to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in PakistanHow to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in Pakistan
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 

Mashup! AWS Lambda, Elixir and IoT Button