

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

# AWS X-Ray SDK for Python
<a name="xray-sdk-python"></a>

**注記**  
X-Ray SDK/デーモンメンテナンス通知 – 2026 年 2 月 25 日、 AWS X-Ray SDKsデーモンはメンテナンスモードに移行します。 AWS では、X-Ray SDK とデーモンのリリースがセキュリティの問題にのみ対処するように制限されます。サポートタイムラインの詳細については、「[X-Ray SDK とデーモンのサポートタイムライン](xray-sdk-daemon-timeline.md)」を参照してください。OpenTelemetry に移行することをお勧めします。OpenTelemetry への移行の詳細については、「[X-Ray による計装から OpenTelemetry による計装への移行](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html)」を参照してください。

X-Ray SDK for Python は、Python ウェブアプリケーション用のライブラリです。トレースデータを作成し X-Ray デーモンに送信するためのクラスおよびメソッドを提供します。トレースデータには、アプリケーションによって提供される受信 HTTP リクエストに関する情報、およびアプリケーションが AWS SDK、HTTP クライアント、または SQL データベースコネクタを使用してダウンストリームサービスに対して行う呼び出しが含まれます。セグメントを手動で作成し、注釈およびメタデータにデバッグ情報を追加することもできます。

SDK は `pip` を使用してダウンロードできます。

```
$ pip install aws-xray-sdk
```

**注記**  
X-Ray SDK for Python は、オープンソースプロジェクトです。プロジェクトに従って、GitHub [github.com/aws/aws-xray-sdk-python](https://github.com/aws/aws-xray-sdk-python) で問題とプルリクエストを送信できます。

Django または Flask を使用する場合は、[アプリケーションに SDK ミドルウェアを追加し](xray-sdk-python-middleware.md)、受信リクエストをトレースします。ミドルウェアでは、トレース対象リクエストごとに「[セグメント](xray-concepts.md#xray-concepts-segments)」を作成し、レスポンスが送信されるとセグメントを完了します。セグメントが開いている間、SDK クライアントのメソッドを使用してセグメントに情報を追加し、サブセグメントを作成してダウンストリーム呼び出しをトレースできます。また、SDK では、セグメントが開いている間にアプリケーションがスローする例外を自動的に記録します。他のアプリケーションの場合、[手動でセグメントを作成](xray-sdk-python-middleware.md#xray-sdk-python-middleware-manual)することができます。

測定されたアプリケーションまたはサービスから呼び出された Lambda 関数に対して、Lambda は [トレースヘッダー](xray-concepts.md#xray-concepts-tracingheader) を読み込み、サンプリングされたリクエストを自動的にトレースします。その他の関数については、[Lambda の設定](xray-services-lambda.md) から受信リクエストのサンプリングとトレースを行うことができます。いずれの場合も、Lambda はセグメントを作成し、X-Ray SDK に提供します。

**注記**  
Lambda では、X-Ray SDK はオプションです。関数でこれを使用しない場合、サービスマップには Lambda サービスのノードと Lambda 関数ごとに 1 つのノードが含まれます。SDK を追加することで、関数コードをインストルメントして、Lambda で記録された関数セグメントにサブセグメントを追加することができます。詳細については「[AWS Lambda および AWS X-Ray](xray-services-lambda.md)」を参照してください。

Lambda で実行されているサンプル Python 関数については、「[ワーカー](scorekeep-lambda.md#scorekeep-lambda-worker)」を参照してください。

次に､X-Ray SDK for Python を使用してダウンストリーム呼び出しを実装するには、[アプリケーションが使用するライブラリにパッチを適用](xray-sdk-python-patching.md)します。SDK は次のライブラリをサポートしています。

**サポートされているライブラリ**
+ `[botocore](https://pypi.python.org/pypi/botocore)`、 `[boto3](https://pypi.python.org/pypi/boto3)` – 計測 AWS SDK for Python (Boto) クライアント。
+ `[pynamodb](https://pypi.python.org/pypi/pynamodb/)` – 測定された Amazon DynamoDB クライアントの PynamoDB のバージョン。
+ `[aiobotocore](https://pypi.python.org/pypi/aiobotocore)`、`[aioboto3](https://pypi.python.org/pypi/aioboto3)` - 測定された [asyncio](https://docs.python.org/3/library/asyncio.html)統合バージョンの SDK for Python クライアント。
+ `[requests](https://pypi.python.org/pypi/requests)`、`[aiohttp](https://pypi.python.org/pypi/aiohttp)` - 測定された高レベルの HTTP クライアント。
+ `[httplib](https://docs.python.org/2/library/httplib.html)`、[https://docs.python.org/3/library/http.client.html](https://docs.python.org/3/library/http.client.html) – 測定された低レベルの HTTP クライアントおよびそれらを使用する高レベルのライブラリ。
+ `[sqlite3](https://docs.python.org/3/library/sqlite3.html)` - SQLite クライアントを測定します。
+ `[mysql-connector-python](https://pypi.python.org/pypi/mysql-connector-python)` - MySQL クライアントを測定します。
+ `[pg8000](https://pypi.org/project/pg8000/)` - Pure-Python PostgreSQL インターフェイスを測定します。
+ `[psycopg2](https://pypi.org/project/psycopg2/)` - PostgreSQL データベースアダプターを測定します。
+ `[pymongo](https://pypi.org/project/pymongo/)` - MongoDB クライアントを測定します。
+ `[pymysql](https://pypi.org/project/PyMySQL/)` - MySQL と MariaDB の測定された PyMySQL ベースのクライアント。

アプリケーションが AWS、SQL データベース、またはその他の HTTP サービスを呼び出すたびに、SDK は呼び出しに関する情報をサブセグメントに記録します。 AWS のサービス また、サービス内でアクセスするリソースは、トレースマップにダウンストリームノードとして表示され、個々の接続でエラーやスロットリングの問題を特定するのに役立ちます。

SDK を入手したら、[レコーダーとミドルウェアを設定](xray-sdk-python-configuration.md)して､その動作をカスタマイズします。プラグインを追加して、アプリケーションを実行しているコンピューティングリソースに関するデータを記録したり、サンプリングルールを定義することでサンプリングの動作をカスタマイズしたり、アプリケーションログに SDK からの情報をより多くあるいは少なく表示するようにログレベルを設定できます。

アプリケーションが[注釈やメタデータ](xray-sdk-python-segment.md)で行うリクエストや作業に関する追加情報を記録します。注釈は、[フィルタ式](xray-console-filters.md)で使用するためにインデックス化されたシンプルなキーと値のペアで、特定のデータが含まれているトレースを検索できます。メタデータのエントリは制約が緩やかで、JSON にシリアル化できるオブジェクトと配列全体を記録できます。

**注釈とメタデータ**  
注釈およびメタデータとは、X-Ray SDK を使用してセグメントに追加する任意のテキストです。注釈は、フィルタ式用にインデックス付けされます。メタデータはインデックス化されませんが、X-Ray コンソールまたは API を使用して raw セグメントで表示できます。X-Ray への読み取りアクセスを許可した人は誰でも、このデータを表示できます。

コードに多数の計測されたクライアントがある場合、単一のリクエストセグメントには計測されたクライアントで行われた呼び出しごとに 1 個の多数のサブセグメントを含めることができます。[カスタムサブセグメント](xray-sdk-python-subsegments.md)で、クライアント呼び出しをラップすることで、サブセグメントを整理してグループできます。関数全体またはコードの任意のセクションに対して､カスタムサブセグメントを作成できます。親セグメントのすべてを書き込むのではなく、サブセグメントにメタデータと注釈を記録することができます。

SDK のクラスとメソッドのリファレンスドキュメントについては、[AWS X-Ray SDK for Python API リファレンス](https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference)を参照してください。

## 要件
<a name="xray-sdk-python-requirements"></a>

X-Ray SDK for Python では、次の言語とライブラリのバージョンがサポートされています。
+ **Python** – 2.7、3.4 以降
+ **Django** – 1.10 以降
+ **Flask** – 0.10 以降
+ **aiohttp** – 2.3.0 以降
+ **AWS SDK for Python (Boto)** - 1.4.0 以降
+ **botocore** – 1.5.0 以降
+ **enum** – 0.4.7 以降 (Python バージョン 3.4.0 以前)
+ **jsonpickle** – 1.0.0 以降
+ **setuptools** – 40.6.3 以降
+ **wrapt** – 1.11.0 以降

## 依存関係管理
<a name="xray-sdk-python-dependencies"></a>

X-Ray SDK for Python は、`pip`から入手できます。
+ **パッケージ** – `aws-xray-sdk`

1. SDK を依存関係として `requirements.txt` ファイルに追加します。

**Example requirements.txt**  

```
aws-xray-sdk==2.4.2
boto3==1.4.4
botocore==1.5.55
Django==1.11.3
```

Elastic Beanstalk を使用してアプリケーションをデプロイする場合、Elastic Beanstalk は `requirements.txt` のパッケージをすべて自動的にインストールします。