1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS AppSyncを触ってみた #1

Last updated at Posted at 2022-05-08

スクリーンショット 2022-05-06 12.43.18.png
Amplifyのチュートリアルをやってみて、個人的に重要だと思ったのがAppSyncだったので、少し深堀してみました。

AppSyncとは

AppSyncは、GraphQL APIの開発を容易にする、AWSの完全マネージド型サービス。
平たくいうと、サーバーレスなGraphQLサービス。
このサービスは、DynamoDBなどのデータソースとの接続に必要な、面倒な作業を自動的に処理してくれます。要はDataBaseも自動で作ってくれる。

*AWSでAPIを作成できるサービスにAPI Gatewayがありますが、それはREST API形式

AppSyncの仕組み

appsync構成.png
CROSS POWERから引用

↑の図でも分かる通り、AppSyncのキーはこの4つかと思います。
1)クエリ
2)スキーマ
3)リゾルバー
4)リソース

1) クエリ

クエリは3種類ある。
– query … データ取得
– mutation … データ追加/更新/削除
– subscription … イベントの購読

スキーマで定義した関数を呼び出す箇所です。
アプリケーション内で定義して、ユーザーがAPI通信を発火、データを取得します。

AppSync上で動作テスト的にクエリを実行する事も可能。
スクリーンショット 2022-05-08 16.02.43.png

2) スキーマ

スキーマは、GraphQL APIの型システム。
アプリケーション内で扱うデータがどのようなフィールドを持ち、そのフィールドがどのような型を持っているのか定義する。

type Todo {
	id: ID!
	name: String!
	description: String
	createdAt: AWSDateTime!
	updatedAt: AWSDateTime!
}

このスキーマを設計(定義)することが、AppSync APIを作る最初のステップになります。

3) リゾルバー

各パラメータを受け取って、リソースに対してどのような処理をするのか(CreateやPutなど)、処理内容を記載したAppSyncのサーバーサイドの機能(関数)群。

つまりは、GraphQLのスキーマで受け付けたリクエストに対し実際にデータ操作を行う部分。

下記のようにリソースの1行動に対して1つのリゾルバが必要になります。

DynamoDBのAテーブルに対して、データを更新するリゾルバー
DynamoDBのBテーブルのデータを、参照するリゾルバー

AWS公式のリゾルバー解説

リゾルバーのアタッチとは:
スキーマにはリゾルバーを「アタッチ」する必要がある。
要はスキーマ(データ)とリゾルバー(処理)をくっつける事かと思います。

スキーマを作成
スクリーンショット 2022-05-08 14.40.41.png

リゾルバーに↑で作成したHogeが追加されるので「アタッチ」をクリック
スクリーンショット 2022-05-08 14.41.22.png

リゾルバー作成画面になるので、データソースを選択する
スクリーンショット 2022-05-08 14.41.57.png

リゾルバーは、2つのマッピングテンプレートで構成される。
・リクエストマッピングテンプレート
・レスポンスマッピングテンプレート

Apache Velocity Template Language(VTL)というプログラミング言語で記述します。
AWS公式のVTL解説
スクリーンショット 2022-05-08 14.42.36.png

アタッチすると、そのリゾルバーは、そのフィールドがクエリまたはミューテーションにリストされるたびに呼び出されます。

パイプラインリゾルバーとは:
パイプラインリゾルバーとは、オペレーション(関数)を順番に実行できるAppSyncの機能。

4) リソース

APIのアクションの対象。
リソースに選択できるものは幅広く、DynamoDBなどDBのレコードを取得/更新したりできますし、HTTPリクエスト(外部のAPI)なども選択できます。

*AppSyncがDaynamoDBのテーブルを自動で作ってくれます。

まとめ

まだ完全理解とは言い難いですが、登場人物たちがどういう仕組みで関連してるかは多少掴めました。次は実際にスキーマを設計したり、Query, Mutationできる様にガンガン触ってカスタマイズしてみようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?