こんにちは。アプリケーションサービス部の渡辺です。API が大好きで API を使わない日はありません。
ということで AWS AppSync Core Workshop をやってみたいと思います。
- AWS AppSync Core Workshop とは
- Introduction to AWS AppSync
- Getting Started
- Hands-on with AppSync
- Testing and Debugging
- Integrate your API
- Monitoring and Observability
- Clean Up Resources
AWS AppSync Core Workshop とは
AWS AppSync Core Workshop は AWS 公式の AWS AppSync の学習資料です。
手を動かしながら AWS AppSync について以下の事柄を学べます。
- GraphQL スキーマの設計
- AWS AppSync を用いた API の作成
- API の保護
- API 操作のためのリゾルバロジックの記述
- API パフォーマンスの監視とトレース
Level 200 ですので、初心者向けの内容です。
また、所要時間は 90 分です。私は 150 分くらいかかりました。(英語が得意な方は 90 分で終わると思います)
AWS AppSync を学びながら Recommended Reads というウェブアプリケーションを作成します。
Introduction to AWS AppSync
Introduction to AWS AppSync を読んで AWS AppSync の概要を把握しましょう。
AWS AppSync はマネージドな GraphQL サービスです。
GraphQL を用いることでクライアントサイドでクエリを構築することができます。
また AWS AppSync は Amazon DynamoDB, AWS Lambda を含む様々なデータソースに対応しています。
Getting Started
今回は Using Your Own AWS Account の説明に従って Workshop の環境を準備します。
ご自身の AWS アカウントをご準備ください。
Hands-on with AppSync
Hands-on with AppSync では、以降 3 ページにわたって以下のような事柄を学べます。
- AWS AppSync を用いて API を作成する
- データソースに Amazon DynamoDB を用いる
- ユニットリゾルバとパイプラインリゾルバの違いを知る
- Amazon Cognito と AWS Lambda を用いた認証で API を保護する
また作業には AWS マネジメントコンソールか AWS CDK を選択できます。
私は AWS CDK で作業しました。
AWS CDK を使用する場合: 使用している AWS アカウントで既に AWS CDK を使用している場合は cdk bootstrap
コマンドは不要です。
私は bootstrap 済みなのに同コマンドを叩いてエラーを出し、一瞬詰まりました...
個人的に勉強になった点は以下です。
One of the most common use cases for Pipeline resolvers is adding custom authorization logic before any resolvers execute against the data sources. In our case, we can mock this out for our listBooksByGenre query. We will create a simple AWS Lambda function that either allows or denies the operation based on an environment variable defined in the function.
ユニットリゾルバとパイプラインリゾルバは名前と概要をなんとなく知っていたのですが、実際にロジックを記述し AWS CDK を用いて定義することで使い分けイメージを確立できました。
(雑談) 読み進めていて感じたのですが、以下の表現かっこよくて好きです。
Security is job zero at AWS
Testing and Debugging
Testing and Debugging をやっていきましょう。
AWS AppSync の The EvaluateCode API を用いることでローカルでリゾルバの挙動を確認することができます。
今回は JavaScript でロジックを記述しましたが、 VTL を用いる際に同 API で動作確認するとより安心だなと感じました。
Integrate your API
Integrate your API で作成した API を用いるフロントエンドをデプロイします。
AWS Amplify や React が登場しますが、説明に従ってロジックの記述とデプロイするだけですのでとても簡単です。
この章で Amplify Library を用いたデータ作成をします。GraphQL でのデータ生成の Tips として活用できそうですね。
Monitoring and Observability
Monitoring and Observability まで辿り着きました。
最後に Amazon CloudWatch と AWS X-Ray を用いた API の監視とトレースについて学びます。
個人的には以下の 2 点が勉強になりました。
- AWS AppSync には request-level logs と field-level logs の2タイプがある
- CloudWatch Logs Insights のプリセット Query を活用できる
Clean Up Resources
ここまでお疲れ様でした。
Clean Up Resources に従って今回作成したリソースを削除して Workshop の完走です!