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
AWS AmplifyとAWS AppSyncとIoT Enterprise Buttonで作...
Search
akitsukada
July 17, 2018
Technology
21k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS AmplifyとAWS AppSyncとIoT Enterprise Buttonで作った リアルタイム投票システム / Real-time voting system using AWS AppSync, AWS Amplify and AWS IoT Enterprise Button
2018/07/17 Meguro.dev LT大会での発表資料
https://meguro-dev.connpass.com/event/91743/
akitsukada
July 17, 2018
More Decks by akitsukada
See All by akitsukada
Recent Updates 20211228 @ AWS Startup Tech Meetup
akitsukada
0
110
Solutions Architect, One of The Most Exciting Careers for Engineers
akitsukada
0
880
サーバレスで王道Webフレームワークを使う方法
akitsukada
5
10k
Other Decks in Technology
See All in Technology
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
190
野蛮なアジャイル [サイボウズ発!]組織の常識を覆した反骨のスクラム実践記 / Barbaric Agile - Enterprise Agile Study Group
ama_ch
0
120
「エーアイ」をバズワードにしないために RPA 導入経験と Kiro 上での Claude モデル利用経験から
kazzpapa3
0
110
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
200
Refining Active Record
shugo
0
180
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
250
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
210
フィンテック養成勉強会#68
finengine
0
180
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
120
How to Design Configuration for Rails Applications
willnet
1
950
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
470
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
150
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
The SEO identity crisis: Don't let AI make you average
varn
0
590
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Git: the NoSQL Database
bkeepers
PRO
433
67k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Transcript
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE .FHVSPEFWNFHVSP@EFW "NQMJGZה"QQ4ZODה*P5#VUUPOד⡲ ٔ،ٕة؎ي䫎牰ءأذي
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE 㝩歊 剼䒽אַ ֹ֮מ • أة٦ز،حفأُ٦ءّٝ鿇 ءص،أُ٦ءّٝ،٦ؗذؙز
• TUBSUVQGJOUFDIGJOUFDITFDVSJUZ CMPDLDIBJOTFSWFSMFTTNPCJMF EFWFMPQNFOU✳⯢ך显
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE 4UBSUVQ"SDIJUFDUVSFPGUIFZFBS דך䫎牰ءأذي⡲鑧
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE © 2018, Amazon Web Services, Inc.
or its affiliates. All rights reserved. 4UBSUVQ"SDIJUFDUVSFPGUIFZFBS ! # CTO100 Architecture of the year AWS " " # 7 ! ! !
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE © 2018, Amazon Web Services, Inc.
or its affiliates. All rights reserved. ؔ٦ر؍ؒٝأ 颣 • 굲㣓⠓㜥ך㾜爙ـ٦أחג♧菙勻㜥罏ח״نةٝ䫎牰 ָ遤גְתׅ
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE 䔲傈ך圫㶨כמֿךش؎أٖه٦ز https://codezine.jp/article/detail/10880
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE ؔ٦ر؍ؒٝأ颣䫎牰ءأذيرٌ
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE 䫎牰ءأذيך酅⩎
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE 䫎牰ءأذيך圓䧭 -BNCEB GVODUJPO Finalist.1 Button Finalist.2
Button Finalist.n Button ... "84 "QQ4ZOD %ZOBNP %# "84 "NQMJGZ 44UBUJD 8FCTJUF)PTUJOH Invoke subscribe Query Static contents chart.js PutItem mutation push
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE "QQ4ZODך4DIFNB饔㶵ָNVUBUJPO鿇ⴓ type Mutation { updateVoteCount(input: UpdateVoteInput!):
VoteCount } input UpdateVoteInput { Finalist: String! } type AllVotes { votes: [VoteCount!] } input CreateVoteHistoryInput { Finalist: String! } type Query { getVoteCount(Finalist: String!): VoteCount getAllVotes: AllVotes } type Subscription { newVote: VoteCount @aws_subscribe(mutations:["updateVoteCount"]) } type VoteCount { Finalist: String! Votes: Int }
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE -BNCEBַךNVUBUJPO const gql = require('graphql-tag'); //
Set up mutation const newVote = gql(` mutation NewVote { updateVoteCount(input: {Finalist: "${Finalist}"}){ Finalist, Votes } } `); // Set up Apollo client const client = new AWSAppSyncClient({ url: url, region: region, auth: { type: type, credentials: AWS.config.credentials, }, disableOffline: true }); try { const newVoteResult = await client.mutate({ variables: { type: "variables", }, mutation: newVote, }); callback(null, { newVoteResult: newVoteResult, }); } catch (err) { callback(err); }
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE "NQMJGZַךTVCTDSJQUJPO // src/Queries/SubscribeToNewVote.js import gql from
'graphql-tag'; export default gql` subscription newVote { newVote { __typename Finalist Votes } }`; // src/Components/AllVotes.js import SubscribeToNewVote from '../Queries/SubscribeToNewVote'; componentDidMount() { this.props.allVotesQuery.subscribeToMore({ document: SubscribeToNewVote, updateQuery: (prev, { subscriptionData }) => { let newVote = subscriptionData.data.newVote; this.updateChart( newVote.Finalist, newVote.Votes ); } }); } (...snip...)
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE *P5نةٝחאְג • ぐ *P5&OUFSQSJTFنةٝחכչ1MBDFNFOUպⶴ䔲ג • 1MBDFNFOUךنةٝ䬃ׇל\GJOBMJTFUGJOBMJTU^
1MBDFNFOUךنةٝ䬃ׇל\GJOBMJTFUGJOBMJTU^ 1MBDFNFOUךنةٝ䬃ׇל\GJOBMJTFUGJOBMJTU^ • ָֿ -BNCEBؿ؋ؙٝءّٝךFWFOUػًٓ٦ةח 床גֻ • ̔ ؿ؋ؙٝءّٝⰻדNVUBUJPOךػًٓ٦ةח • 鿪䏝8J'Jאַזְה鷏⥋㣟侁ׅ㉏겗 • 䚈鼓ⴽך8J'J欽䠐׃˘
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE عوוֿהַ䠬䟝הַ
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE عوוֿכ暴חזַ ֽו侒ִג鎉ִל (SBQI2-ךأؗ٦و㹀纏ה 3FBDUⰻדך"QQ4ZOD"QPMMPךسًُؗٝز 然钠ח㼰׃儗⢪կ 䩛鯪ח馄أ؛٦ٓـٕ4
$' "NQMJGZ "QQ4ZOD %ZOBNP%# -BNCEBז،فٔ؛٦ ءّٝאֻ
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE !BLJUTVLBEBתד䠬䟝ֶ㺔ְׇֻׁ
h "NB[PO8FC4FSWJDFT *ODPSJUT"GGJMJBUFT"MMSJHIUTSFTFSWFE