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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
240
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
1.5k
LLMに渡さなかった仕事
nanaism
0
170
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
190
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.5k
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
200
iOSDC Japan 2026 day1 TrackC 10:50
feedtailor
1
160
10分で知る最近のOmarchy
komagata
0
320
AI時代、データエンジニアが一番おもろい
genshun9
0
590
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
3
2.9k
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
740
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
560
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Leo the Paperboy
mayatellez
10
2.3k
Google's AI Overviews - The New Search
badams
0
1.6k
Documentation Writing (for coders)
carmenintech
77
5.5k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Speed Design
sergeychernyshev
33
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
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