Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
serverless - send email and update status
Search
Anna Su
March 22, 2019
Technology
0
81
serverless - send email and update status
2019/3/22
@ branch8 公司內部技術分享
Anna Su
March 22, 2019
Tweet
Share
More Decks by Anna Su
See All by Anna Su
從 Styled System 看下一代 CSS 技術
annasu
2
2.1k
We need a better UI component library - Styled System
annasu
0
6.1k
What’s FullStory?
annasu
0
120
PWA 應用與價值
annasu
0
81
初探 DevOps 的世界
annasu
0
220
Why Redux-Observable?
annasu
0
49
PWA 與 Service Worker
annasu
0
52
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
annasu
0
71
Other Decks in Technology
See All in Technology
Post-AIコーディング時代のエンジニア生存戦略
shinoyu
0
300
re:Invent2025 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
180
不確実性に備える ABEMA の信頼性設計とオブザーバビリティ基盤
nagapad
3
3k
ECS組み込みのBlue/Greenデプロイを動かしてELB側の動きを観察してみる
yuki_ink
2
240
pmconf 2025 大阪「生成AI時代に未来を切り開くためのプロダクト戦略:圧倒的生産性を実現するためのプロダクトサイクロン」 / The Product Cyclone for Outstanding Productivity
yamamuteki
2
1.5k
Dev Containers と Skaffold で実現する クラウドネイティブ開発環境 ローカルのみという制約に挑む / Cloud-Native Development with Dev Containers and Skaffold: Tackling the Local-Only Constraint
bitkey
PRO
0
110
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
1
3.6k
都市スケールAR制作で気をつけること
segur
0
150
リアーキテクティングのその先へ 〜品質と開発生産性の壁を越えるプラットフォーム戦略〜 / architecture-con2025
visional_engineering_and_design
0
2.8k
Moto: Latent Motion Token as the Bridging Language for Learning Robot Manipulation from Videos
peisuke
0
160
単一Kubernetesクラスタで実現する AI/ML 向けクラウドサービス
pfn
PRO
1
320
AIを前提に、業務を”再構築”せよ IVRyの9ヶ月にわたる挑戦と未来の働き方 (BTCONJP2025)
yueda256
1
790
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
How GitHub (no longer) Works
holman
315
140k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Code Review Best Practice
trishagee
72
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
670
The Pragmatic Product Professional
lauravandoore
36
7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
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