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
CDKでAppSyncのJavaScriptリゾルバを開発したい
Search
ryome
July 07, 2023
Technology
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CDKでAppSyncのJavaScriptリゾルバを開発したい
CDKを使用してAppSyncのJavaScriptリゾルバを開発するメリットについて解説します。
ryome
July 07, 2023
More Decks by ryome
See All by ryome
AWSデスノート〜AWSの嫌いなところまとめ〜
ryome
0
53
AWS MCPを使ってみた
ryome
0
650
ClineでAWS CDKやインフラ構成図作ってみた
ryome
1
660
PlaywrightというE2Eテストツールを布教したい
ryome
0
110
Cursorという最強エディタを使いこなしたい
ryome
0
360
E2Eテストを自動化したい
ryome
0
100
AWS CodeBuildを高速化したい
ryome
0
730
Cognitoの複数IDP認証でユーザを統合したい
ryome
1
1.5k
OAuth2.0完全に理解した
ryome
0
330
Other Decks in Technology
See All in Technology
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
4
1.1k
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
130
Browser Spec: Testing Hotwire with Ruby
takahashim
1
120
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1k
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
340
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
170
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
860
Metadata - Section 1: HTML Basics
mohab1
0
120
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
Building AI with AI
inesmontani
PRO
1
1.3k
How to train your dragon (web standard)
notwaldorf
96
6.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Building Applications with DynamoDB
mza
96
7.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Site-Speed That Sticks
csswizardry
13
1.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Transcript
CDKでAppSyncの JavaScriptリゾルバを開発したい
AWS CDKおさらい • AWS CDKは、クラウドリソースのプロビジョニングを行うための 開発フレームワーク • AWS CDKを使うと、開発者は一般的なプログラミング言語を使用して、 クラウドリソースをプロビジョニングすることができる
• AWS CDKは、AWSリソースの高レベルな抽象化を提供し、開発者は インフラの詳細を深く理解しなくても、クラウドリソースの作成、 管理をすることができる • AWS CDKはAWS CloudFormationを内部的に使用して、 クラウドリソースをプロビジョニングする
AWS AppSyncおさらい • AWS AppSyncは、AWSが提供するフルマネージド型のGraphQLサービス • AWS AppSyncは、GraphQLのsubscription機能を使用して、 リアルタイムなデータ同期を可能にする •
AWS AppSyncは、Amazon DynamoDB、Amazon Auroraなどの異なる データソースからデータを取得し、単一のAPIエンドポイントで結合が可能 • GraphQLを採用しているため、AppSyncではクライアントが必要な データのみをクエリーすることができる
AppSyncリゾルバおさらい • AppSync では、データソース、リゾルバ、関数を定義することができる • リゾルバは AppSync に GraphQL リクエストの処理方法を指示し、
レスポンスを GraphQL タイプで返却する • AppSync のリゾルバは、パイプラインで最大10個の関数を設定でき、 それぞれがデータソースに接続できる • リゾルバが呼び出されると、各関数が順番に実行される GraphQL リ ク エ ス ト パ イ プ ラ イ ン リ ク エ ス ト 関 数 リ ク エ ス ト デ ー タ ソ ー ス 関 数 レ ス ポ ン ス パ イ プ ラ イ ン レ ス ポ ン ス GraphQL レ ス ポ ン ス ・・・
なぜ、CDKでAppSync開発?? • 共通言語利用:JavaScriptさえ習得すればインフラ、フロントエンド、バック エンドのコードが書ける(インフラに条件分岐・ループ等も使用可能) • 自動デプロイ:cdk watchコマンドを使用して、変更があった際に 自動的に検知してデプロイができる(cdk.jsonにwatch範囲を定義する) • コード短縮:CloudFormationテンプレートが数千行必要となるような
複雑なインフラを数百行程度のコードで実現できる • 静的な型チェックと自動補完:インフラ開発の初期段階で、 エラー検出が可能になり、IDEの自動補完機能をフル活用できる
共通言語利用 フロントエンド (React) バックエンド (AppSync) インフラ (CDK)
自動デプロイ ① 「 cdk watch --hotswap-fallback 」 コマンドを実行 ② 変更を自動検知して
デプロイを実行する
コード短縮 CDK CloudFormation 153行 909行
静的な型チェックと自動補完 IDEが自動補完 してくれる 引数の型が 決まっている
JavaScriptリゾルバによりVTLから解放 VTLのダメだったところ • 学習難易度:学習コストが高い かつ 他で使う場面が少ない • ドキュメント不足:VTLに関する記事が少ない JavaScriptになって良かったこと •
共通言語利用:JavaScriptさえ習得すればフロントエンドも バックエンドも書ける • ドキュメントが豊富: JavaScriptに関する記事は多い
機能一覧・インフラ構成図 ToDoリストアプリ • ログイン機能 • タスク一覧機能 • タスク作成機能 • タスク完了機能
• タスク削除機能 ソースコード等は以下に格納されています。 https://github.com/ryomeblog/cdk-js-resolvers-sample
シーケンス図 (初回起動・ログイン)
シーケンス図 (タスク作成)
シーケンス図 (タスク完了)
シーケンス図 (タスク削除)
動作確認 詳細はQiitaで解説。 https://github.com/ryomebl og/cdk-js-resolvers-sample
参考文献 • https://github.com/ryomeblog/cdk-js-resolvers-sample • https://dev.classmethod.jp/articles/cdk-watch-mode • https://cdkworkshop.com/ja/20-typescript/30-hello- cdk/300-cdk-watch.html