AWS AppSync Core Workshop をやってみよう

記事タイトルとURLをコピーする

こんにちは。アプリケーションサービス部の渡辺です。API が大好きで API を使わない日はありません。

ということで AWS AppSync Core Workshop をやってみたいと思います。

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 というウェブアプリケーションを作成します。

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 の完走です!

渡辺 隼人 (記事一覧)

アプリケーションサービス部 ディベロップメントサービス1課

音楽と猫ちゃんが好き