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
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
870
サーバレスで王道Webフレームワークを使う方法
akitsukada
5
10k
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.8k
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
410
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
200
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
270
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
260
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
110
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
210
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
250
GoCon2026 - Open Source, Open World
sanposhiho
2
560
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
The untapped power of vector embeddings
frankvandijk
2
1.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
430
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
560
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to build a perfect <img>
jonoalderson
1
6k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
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