翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS X-Ray を使用して AWS AppSync でリクエストを追跡する
AWS X-Ray を使用して、AWS AppSync で実行されるリクエストをトレースできます。X-Ray は、X-Ray を利用できるすべての AWS リージョンで AWS AppSync と併用できます。X-Ray は、GraphQL リクエスト全体の詳細な概要を提供します。これにより、API とその基盤となるリゾルバーとデータソース内のレイテンシーを分析できます。X-Ray サービスマップを使用して、X-Ray と統合されている AWS サービスなど、リクエストのレイテンシーを表示できます。また、サンプリングルールを設定することで、X-Ray で記録するリクエストとサンプリングレートを基準に応じて指定できます。
X-Ray でのサンプリングの詳細については、「AWS X-Rayコンソールでのサンプリングルールの設定」を参照してください。
セットアップと設定
AWS AppSync コンソールを使用して GraphQL API の X-Ray トレースを有効にできます。
-
AWS AppSync コンソールにサインインします。
-
ナビゲーションパネルから [設定] を選択します。
-
X-Ray で、[X-Ray を有効にする] をオンにします。
-
[Save] を選択します。X-Ray が API に対して有効になりました。
AWS CLI または AWS CloudFormation を使用している場合は、xrayEnabled
プロパティを true
に設定することで、新しい AWS AppSync API の作成時に X-Ray トレースを有効にしたり、既存の AWS API を更新したりすることもできます。
AWS AppSync API で X-Rayトレースを有効にすると、適切なアクセス許可を持つ AWS Identity and Access Managementサービスリンクロールが自動的にアカウントに作成されます。これにより、AWS AppSync は安全な方法で X-Ray にトレースを送信できます。
X-Ray で API をトレースする
サンプリング
サンプリングルールを使用することで、コードを変更または再デプロイすることなく、その場で、AWS AppSync で記録するレコードの量を制御したり、サンプリング動作を変更したりできます。たとえば、このルールは、API ID 3n572shhcpfokwhdnq1ogu59v6
を持つ GraphQL API へのリクエストをサンプリングします。
-
ルール名 —
test-sample
-
優先度 —
10
-
リザーバのサイズ —
10
-
固定レート —
10
-
サービス名 —
*
-
サービスタイプ —
AWS::AppSync::GraphQLAPI
-
HTTP メソッド —
*
-
リソース ARN —
arn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6
-
ホスト —
*
トレースについて
GraphQL API の X-Ray トレースを有効にすると、X-Ray トレース詳細ページを使用して、API に対するリクエストの詳細なレイテンシー情報を調べることができます。次に、この特定のリクエストのサービスマップとともにトレースビューを表示する例を示します。リクエストは Post タイプを使用して postAPI
と呼ばれる API に対して行われました。そのデータは PostTable-Example
という名前の Amazon DynamoDB テーブルに含まれています。
次のトレースイメージは、次の GraphQL クエリに対応しています。
query getPost { getPost(id: "1") { id title } }
getPost
クエリのリゾルバーは、基盤になる DynamoDB データソースを使用します。次のトレースビューには、 DynamoDB への呼び出しと、クエリの実行のさまざまな部分のレイテンシーが表示されます。

-
上の図では、
/getPost
は、解決される要素への完全なパスを表します。この場合、getPost
はルートQuery
タイプのフィールドであるため、パスのルートの直後に表示されます。 -
requestMappingTemplateEvaluation
は、AWS AppSync によってクエリ内のこの要素のリクエストマッピングテンプレートを評価するのに費やされた時間を表します。 -
Query.getPost
は、型とフィールド (Type.field
形式) を表します。API の構造とトレースされるリクエストに応じて、複数のサブセグメントを含めることができます。-
DynamoDB
は、このリゾルバーにアタッチされているデータソースを表します。これには、DynamoDB へのネットワーク呼び出しがフィールドを解決するためのレイテンシーが含まれます。 -
responseMappingTemplateEvaluation
は、AWS AppSync によってクエリ内のこの要素のレスポンスマッピングテンプレートを評価するのに費やされた時間を表します。
-
X-Ray でトレースを表示する場合、サブセグメントを選択して詳細ビューを表示することで、AWS AppSync セグメント内のサブセグメントに関する追加のコンテキスト情報とメタデータ情報を取得できます。
深くネストされたクエリや複雑なクエリの場合、AWS AppSync によって X-Ray に配信されるセグメントは、AWS X-Rayセグメントドキュメントで定義されているように、セグメントドキュメントで許可される最大サイズよりも大きくなる場合があります。X-Ray では、制限を超えるセグメントは表示されません。