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
CDKでAppSyncのJavaScriptリゾルバを開発したい
Search
ryome
July 07, 2023
Technology
0
290
CDKでAppSyncのJavaScriptリゾルバを開発したい
CDKを使用してAppSyncのJavaScriptリゾルバを開発するメリットについて解説します。
ryome
July 07, 2023
Tweet
Share
More Decks by ryome
See All by ryome
AWSデスノート〜AWSの嫌いなところまとめ〜
ryome
0
28
AWS MCPを使ってみた
ryome
0
580
ClineでAWS CDKやインフラ構成図作ってみた
ryome
1
570
PlaywrightというE2Eテストツールを布教したい
ryome
0
66
Cursorという最強エディタを使いこなしたい
ryome
0
310
E2Eテストを自動化したい
ryome
0
79
AWS CodeBuildを高速化したい
ryome
0
620
Cognitoの複数IDP認証でユーザを統合したい
ryome
1
1.4k
OAuth2.0完全に理解した
ryome
0
230
Other Decks in Technology
See All in Technology
Context Engineeringの取り組み
nutslove
0
340
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
130
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.3k
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
720
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
220
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.1k
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
240
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
2.2k
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
130
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.4k
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.7k
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Tell your own story through comics
letsgokoyo
1
810
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
Navigating Team Friction
lara
192
16k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
110
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
92
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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