Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
serverless - send email and update status
Search
Anna Su
March 22, 2019
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
serverless - send email and update status
2019/3/22
@ branch8 公司內部技術分享
Anna Su
March 22, 2019
More Decks by Anna Su
See All by Anna Su
從 Styled System 看下一代 CSS 技術
annasu
2
2.4k
We need a better UI component library - Styled System
annasu
0
6.4k
What’s FullStory?
annasu
0
200
PWA 應用與價值
annasu
0
110
初探 DevOps 的世界
annasu
0
330
Why Redux-Observable?
annasu
0
110
PWA 與 Service Worker
annasu
0
98
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
annasu
0
98
Other Decks in Technology
See All in Technology
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
920
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
210
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
130
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
310
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
990
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
510
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
110
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
150
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
PRO
0
450
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.4k
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
200
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Testing 201, or: Great Expectations
jmmastey
46
8.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
It's Worth the Effort
3n
188
29k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
How STYLIGHT went responsive
nonsquared
100
6.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Test your architecture with Archunit
thirion
2
2.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
Transcript
Serverless Anna Su Send Email and update status
Why not VM 即使 server 沒有收到任何 request ,還是會被收取費⽤用 必須設定與持續管理理 Server
需要經常更更新 Server,避免安全性問題 當我們使⽤用量量變⼤大時,需要管理理 server 的 scaling up 如果使⽤用量量變低時,也需要 scaling down
Why Serverless ⾃自動擴展 依照使⽤用量量付費 開發速度更更快 零管理理
You don’t have to think about those servers. You just
focus on code.
What’s Serverless Serverless is an execution model where the cloud
provider is responsible for executing a piece of code by dynamically allocating the resources.
What’s Serverless The code is typically run inside stateless containers.
Can be triggered by a variety of events including http requests, database events, monitoring alerts, file uploads, scheduled events, etc
How Serverless Works @aws Upload your code to AWS Lambda
Set up your code to trigger from other AWS services, HTTP endpoints, or in-app activity Lambda runs your code only when triggered, using only the compute resources needed Pay just for the compute time you use
Install Serverless npm install -g serverless
Deploy a Node.js function to AWS Lambda
sls
sls create -t aws-nodejs
brew install awscli
aws configure
module.exports.hello = async (event) => { return { statusCode: 200,
body: JSON.stringify({ message: 'Go Serverless v1.0! Your function executed successfully!', input: event, }), }; }; handler.js
service: aws-nodejs-demo provider: name: aws runtime: nodejs8.10 functions: hello: handler:
handler.hello events: - http: path: / method: get serverless.yml
sls deploy
Serverless Project for Email
HASURA SendGrid AWS Lambda Using
HASURA build GraphQL apps backed by Postgres
HASURA Event trigger
SendGrid email service trusted by developers and marketers
AWS Lambda run code without thinking about servers
Send Email HASURA event trigger webhook Serverless AWS Lambda
Update Email Status notification webhook Serverless AWS Lambda
Email Flow HASURA Realtime Serverless Send email HASURA Event SendGrid
Event Notification SendGrid Serverless Update email
Send Email Flow HASURA Realtime Serverless Send email HASURA Event
SendGrid
Create HASURA Table
Creating an event-trigger to listen to a database change on
Postgres
Create Serverless (Send Email) const sgMail = require('@sendgrid/mail'); module.exports.run =
async event => { try { let { table: { name: table_name, schema }, event: { data: { new: { to, from, subject, content: html, id }, }, }, } = JSON.parse(event.body); sgMail.setApiKey(process.env.SENDGRID_API_KEY);
SendGrid Settings
AWS Lambda Settings
Update Email Status Flow HASURA Realtime Serverless Send email HASURA
Event SendGrid Event Notification SendGrid Serverless Update email
Create Serverless (Update Email) const axios = require('axios'); module.exports.run =
async event => { try { const body = JSON.parse(event.body); const { id, event: status, schema, table_name } = body[body.length - 1]; await axios({ method: 'post', headers: { 'x-hasura-admin-secret': process.env.HASURA_SECRET, }, url: process.env.HASURA_URL, data: { variables: {
AWS Lambda Settings
SendGrid Settings
provider: functions: sendEmailFromHasura: handler: sendEmailFromHasura.run events: - http: path: send-email-from-hasura
method: post updateHasuraEmailStatus: handler: updateHasuraEmailStatus.run events: - http: path: update-hasura-email-status method: post plugins: - serverless-plugin-monorepo serverless.yml
sls deploy
AWS Lambda function
Reference https://serverless.com/ https://aws.amazon.com/tw/lambda/ Develop a Serveerless Backend using Node.js on
AWS Lambda What is Serverless ? Serverless overview What is Serverless Architecture? https://www.flaticon.com
Thanks Anna Su