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
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
330
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
180
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
1
370
やさしいA2A入門
minorun365
PRO
12
1.9k
LLMにもCAP定理があるという話
harukasakihara
0
360
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2.2k
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
130
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
210
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
6
5.2k
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
160
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
110
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
160
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
620
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Chasing Engaging Ingredients in Design
codingconduct
0
220
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Practical Orchestrator
shlominoach
191
11k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Ruling the World: When Life Gets Gamed
codingconduct
0
250
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
The browser strikes back
jonoalderson
0
1.2k
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