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
AppSync入門! GraphQL APIを作ってみた!
Search
Nao Masuya
October 26, 2023
Technology
3
590
AppSync入門! GraphQL APIを作ってみた!
AppSync,GraphQLの簡単な紹介です!
Nao Masuya
October 26, 2023
Tweet
Share
More Decks by Nao Masuya
See All by Nao Masuya
Step Functionsと少し仲良くなってみた
masuchoku
1
140
API Gatewayと少し仲良くなってみた!
masuchoku
0
290
スライド作りから LTを楽しもう! エンジョイ、 エンジニアライフ!
masuchoku
1
220
APCのAWS認定マスターたちに聞いてみた
masuchoku
0
54
AWSとJenkinsおじさん で学んできたCI_CD
masuchoku
1
650
推しメンは Systems Manager
masuchoku
0
71
Other Decks in Technology
See All in Technology
LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~
pharma_x_tech
2
160
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
地理情報とAPIのトレンド
nagix
0
160
運用改善、不都合な真実 / 20240722-ssmjp-kaizen
opelab
17
8k
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
270
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
データベース研修 DB基礎【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
210
Flutter研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
325
20k
Optimizing for Happiness
mojombo
373
69k
Designing Experiences People Love
moore
136
23k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Typedesign – Prime Four
hannesfritz
37
2.2k
4 Signs Your Business is Dying
shpigford
178
21k
In The Pink: A Labor of Love
frogandcode
139
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
25
6.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Statistics for Hackers
jakevdp
792
220k
Music & Morning Musume
bryan
43
5.9k
Transcript
AppSync入門! GraphQL APIを 作ってみた! 2023/10/25 JAWS UG 朝会 APCommunications 升谷直緒
Self Introduction 所属 株式会社エーピーコミュニケーションズ @apc_tweet
Self Introduction 株式会社 エーピーコミュニケーションズ システム基盤サービス事業本部 クラウド事業部 IaC技術推進部 升谷直緒 • 2020年新卒入社
• SIerとして4年目 • AWSは使い始めて3年目 • CI/CDの導入支援 • Webアプリの改善運用 • リモートワーク @masuchoku
JAWSに参加してみて 今年の3月ごろから月1ペースでJAWSに参加、LTは4回目です。 社外の人と関われる貴重な機会、 普段使わないAWSサービスに触れる、 アウトプットと向き合うことができる、 初心者にすごく優しいコミュニティ …な点がいいなと感じております!
本日は、、 GraphQL APIはこんなに簡単にAWSで作れるのか!? をお伝えしたいです! ぜひ今日お時間があれば作ってみてください...!
App Sync とは サーバレスにGraphQLを使用し、データベースに接続で きるサービス。 1 つの GraphQL API エンドポイントから
1 つ以上の データソースのデータにアクセスする。
クエリ言語とスキーマ言語で構成された Web APIの規格。 サーバーにデータを問い合わせることができる。 RESTの場合、必要のないデータまで取得してしまうため、大量 のデータを処理する必要があったため、 GraphQLが開発され た。 Facebook社によって2012年に開発がスタートし、 2015年にオー
プンソース化された。 GraphQL とは
REST と GraphQL REST GraphQL クエリ { user(id: 1) {
name } } レスポンス { "data": { "user": { "name": "Nao Masuya" } } } GETリクエスト GET /users レスポンス [ {"id": 1, "name": "Nao Masuya"}, {"id": 2, "name": "Simba"} ] 「単一のURLエンドポイント」にク エリを行えば、クエリに応じた データを返すことができる。
RESTを使う User API Gateway Lambda RDS ドラキュラはこういうユーザー • アプリケーションの規模が小さく、データがそれ ほど複雑ではない
• すべてのクライアントが同じように使用するデー タと操作がある • 複雑なデータクエリの必要がない https://aws.amazon.com/jp/compare/the-difference-between-graphql-and-rest/
DynamoDBの 参照・削除・更新がしたい クエリを書くだけ GraphQLを使う User App Sync DynamoDB ゾンビはこういうユーザー •
帯域幅に制限があり、リクエストとレスポンスの数を最小限に抑えたい • 複数のデータソースがあり、それらを 1 つのエンドポイントにまとめたい • クライアントのリクエストが大きく異なり、求められるレスポンスも大きく異なる https://aws.amazon.com/jp/compare/the-difference-between-graphql-and-rest/
AppSyncの実装はとても簡単 DynamoDBを選択 API名を決める クエリの要素を入力
クエリを実行 DynamoDBで確認
認証方法 API_KEY AWS_LAMBDA AWS_IAM OPENID_CONNECT AMAZON_COGNITO_USER_POOLS から選べます!
IAMを使った認証方法 IAM Policyを作成してUserに紐付ける { "Version": "2012-10-17", "Statement": [ { "Effect":
"Allow", "Action": [ "appsync:GraphQL" ], "Resource": [ "作成したAPIのarn:aws/*" // やりたい放題 "作成したAPIのarn:aws/types/Query/*” // 取得 "作成したAPIのarn:aws/types/Mutation/*” // 挿入更新削除 "作成したAPIのarn:aws/types/Subscription/*” // 監視 ] } ] }
CREDITS: This presentation template was created by Slidesgo, including icons
by Flaticon, infographics & images by Freepik Thank you! AppSync,GraphQLの簡単な紹介でした! Happy Halloween!
Resources • GraphQLとRESTの比較 ◦ https://hasura.io/learn/ja/graphql/intro-graphql/graphql-vs-rest/ • AWS AppSync の概要 ◦
https://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/what-is-appsync.html • GraphQLとは?RESTとの違いや導入事例を紹介 ◦ https://udemy.benesse.co.jp/development/system/graphql.html • GraphQL と REST の違いは? ◦ https://aws.amazon.com/jp/compare/the-difference-between-graphql-and-rest/ • 承認と認証 ◦ https://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/security-authz.html