

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

# AWS X-Ray を使用して AWS AppSync でリクエストをトレースする
<a name="x-ray-tracing"></a>

を使用して[AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)、 AWS AppSync で実行されるリクエストを追跡できます。X-Ray が利用可能なすべての AWS リージョンで AWS AppSync で X-Ray を使用できます。X-Ray は、GraphQL リクエスト全体の詳細な概要を提供します。これにより、API とその基盤となるリゾルバーとデータソース内のレイテンシーを分析できます。X-Ray サービスマップを使用して、X-Ray と統合された AWS サービスを含むリクエストのレイテンシーを表示できます。また、サンプリングルールを設定することで、X-Ray で記録するリクエストとサンプリングレートを基準に応じて指定できます。

X-Ray でのサンプリングの詳細については、「 [AWS X-Ray コンソールでのサンプリングルールの設定](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html)」を参照してください。

## セットアップと設定
<a name="setup-and-configuration"></a>

GraphQL API の X-Ray トレースは、 AWS AppSync コンソールから有効にできます。

1.  AWS AppSync コンソールにサインインします。

1. ナビゲーションパネルから [**設定**] を選択します。

1. **X-Ray** で、[**X-Ray を有効にする**] をオンにします。

1. **[保存]** を選択します。X-Ray が API に対して有効になりました。

 AWS CLI または を使用している場合は AWS CloudFormation、新しい AWS AppSync API を作成するときに X-Ray トレースを有効にすることも、 `xrayEnabled`プロパティを に設定して既存の AWS AppSync API を更新することもできます`true`。

 AWS AppSync API で X-Ray トレースを有効にすると、適切なアクセス許可を持つ AWS Identity and Access Management [サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)がアカウントに自動的に作成されます。これにより、 AWS AppSync は X-Ray にトレースを安全な方法で送信できます。

## X-Ray で API をトレースする
<a name="tracing-your-api-with-xray"></a>

### サンプリング
<a name="sampling"></a>

サンプリングルールを使用することで、コードを変更または再デプロイすることなく、その場で、 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` 
+  **ホスト** — `*` 

### トレースについて
<a name="understanding-traces"></a>

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 への呼び出しと、クエリの実行のさまざまな部分のレイテンシーが表示されます。

![\[Trace view showing client request, postAPI, and DynamoDB with durations and request details.\]](http://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/images/xray-getpost-trace-view.png)

+ 上の図では、`/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](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html)X-Ray では、制限を超えるセグメントは表示されません。