システムの概要とアーキテクチャ - AWS AppSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

システムの概要とアーキテクチャ

AWSAppSync を使用すると、開発者はマネージド型 GraphQL サービスをとおしてデータとやり取りできます。GraphQL では、従来のゲートウェイと比べて多くの利点があり、宣言型のコーディングスタイルを促進し、React、React Native、iOS、および Android などの最新のツールやフレームワークとシームレスに連携できます。

Architecture

Concepts

GraphQL プロキシ

リクエストを処理し、それをデータオペレーションまたはトリガーのための論理関数にマッピングするために、GraphQL エンジンを実行するコンポーネント。データ解決プロセスでは、データソースに対するバッチ処理 (データローダーと呼ばれる) が実行されます。このコンポーネントは、競合の検出と解決策も管理します。

Operation

AWSAppSync では、クエリ (読み取り専用の取得)、ミューテーション (書き込みとそれに続く取得)、サブスクリプション (イベントに対応してデータを受信する存続期間の長いリクエスト) の 3 つの GraphQL オペレーションがサポートされています。

Action

アクションが 1 つあります。AWSAppSync が定義されています。このアクションは、ミューテーションの結果である、接続されているサブスクライバーへの通知です。クライアントは GraphQL サブスクリプションに従うハンドシェイクプロセスを通じてサブスクライバーになります。

データソース

システムまたはトリガーにアクセスするための認証情報を伴う、永続的ストレージシステムまたはトリガー。アプリケーションの状態は、データソースで定義されているシステムおよびトリガーによって管理されています。データソースの例としては、NoSQL データベース、リレーショナルデータベース、AWS Lambda関数、HTTP API などがあります。

Resolver

GraphQL ペイロードを基盤となるストレージシステムのプロトコルに変換し、呼び出し元にそれを呼び出す権限がある場合に実行する関数。リゾルバーは、変換と実行のロジックが含まれているリクエストマッピングテンプレートとレスポンスマッピングテンプレートで構成されます。

ユニットリゾルバー

ユニットリゾルバーは、事前定義のデータソースに対して 1 つのオペレーションを実行するリゾルバーです。

パイプラインリゾルバー

パイプラインリゾルバーは、1 つ以上のデータソースに対して複数のオペレーションを実行できるリゾルバーです。パイプラインリゾルバーは関数のリストで構成されています。各関数は順番に実行され、事前定義のデータソースに対して 1 つのオペレーションを実行できます。

Function

関数は、複数のパイプラインリゾルバーにまたがって使用できる 1 つのオペレーションを定義します。GraphQL プロキシ全体で重複するロジックを実行するために関数を再利用できます。関数はリクエストおよびレスポンスマッピングテンプレート、データソース名、バージョンで構成されます。

Identity

一連の認証情報に基づいた呼び出し元の表現。これは、GraphQL へのすべてのリクエストと一緒に送信される必要があります。リゾルバーを呼び出すためのアクセス権限が含まれています。ID 情報は、追加のチェックを実行するために、リゾルバーと競合ハンドラーにコンテキストとして渡されます。

AWSAppSync クライアント

GraphQL オペレーションが定義されている場所。クライアントは、リクエストステートメントの適切な認証ラップ適切を実行してから GraphQL プロキシに送信します。レスポンスはオフラインストアに保持され、ミューテーションは書き込みスルーパターンで作成されています。