

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 다운스트림 호출 구성을 위해 라이브러리 패치
<a name="xray-sdk-python-patching"></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)을 참조하세요.

다운스트림 호출을 구성하려면 Python용 X-Ray SDK를 사용하여 애플리케이션이 사용하는 라이브러리를 패치합니다. Python용 X-Ray 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)` — Python 클라이언트용 [비동기](https://docs.python.org/3/library/asyncio.html) 통합 SDK 버전을 구성합니다.
+ `[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/)` – 순수 Python을 구성합니다.
+ `[psycopg2](https://pypi.org/project/psycopg2/)` – PostgreSQL 데이터베이스 어댑터를 구성합니다.
+ `[pymongo](https://pypi.org/project/pymongo/)` – MongoDB 클라이언트를 구성합니다.
+ `[pymysql](https://pypi.org/project/PyMySQL/)` – MySQL 및 MariaDB 클라이언트에 기반한 PyMySQL을 구성합니다.

패치된 라이브러리를 사용하면 Python용 X-Ray SDK는 직접 호출에 대한 하위 세그먼트를 생성하고 요청 및 응답의 정보를 기록합니다. SDK가 SDK 미들웨어 또는 AWS Lambda에서 하위 세그먼트를 생성하려면 세그먼트를 사용할 수 있어야 합니다.

**참고**  
SQLAlchemy ORM을 사용하는 경우, SQLAlchemy 세션의 SDK 버전과 쿼리 클래스를 가져와서 SQL 쿼리를 구성할 수 있습니다. 지침은 [SQLAlchemy ORM 사용](https://github.com/aws/aws-xray-sdk-python/blob/master/README.md#use-sqlalchemy-orm)을 참조하십시오.

사용 가능한 모든 라이브러리를 패치하려면 `aws_xray_sdk.core`에서 `patch_all` 함수를 사용합니다. `httplib` 및 `urllib`와 같은 일부 라이브러리는 `patch_all(double_patch=True)`을 호출하여 이중 패치 적용을 활성화해야 할 수 있습니다 .

**Example main.py – 지원되는 모든 라이브러리 패치**  

```
import boto3
import botocore
import requests
import sqlite3

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()
```

단일 라이브러리에 패치를 적용하려면 라이브러리 이름의 튜플을 사용하여 `patch`를 호출합니다. 이를 위해서는 단일 요소 목록을 제공해야 합니다.

**Example main.py – 특정 라이브러리 패치**  

```
import boto3
import botocore
import requests
import mysql-connector-python

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch

libraries = (['botocore'])
patch(libraries)
```

**참고**  
라이브러리를 패치하는 데 사용한 키가 라이브러리 이름과 맞지 않는 경우도 있습니다. 일부 키는 하나 이상의 라이브러리에 대해 별칭 역할을 합니다.  
`httplib` – `[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)
`mysql` – `[mysql-connector-python](https://pypi.python.org/pypi/mysql-connector-python)`

## 비동기 작업에 대한 컨텍스트 추적
<a name="xray-sdk-python-patching-async"></a>

`asyncio` 통합 라이브러리의 경우 또는 [비동기 함수에 대한 하위 세그먼트를 생성](xray-sdk-python-subsegments.md)하려면 비동기 컨텍스트를 사용하여 Python용 X-Ray SDK도 구성해야 합니다. `AsyncContext` 클래스를 가져와서 이 클래스의 인스턴스를 X-Ray 레코더에 전달합니다.

**참고**  
AIOHTTP와 같은 웹 프레임워크 지원 라이브러리는 `aws_xray_sdk.core.patcher` 모듈을 통해 처리되지 않습니다. 이들은 지원되는 라이브러리의 `patcher` 카탈로그에 나타나지 않습니다.

**Example main.py – aioboto3 패치**  

```
import asyncio
import aioboto3
import requests

from aws_xray_sdk.core.async_context import AsyncContext
from aws_xray_sdk.core import xray_recorder
xray_recorder.configure(service='my_service', context=AsyncContext())
from aws_xray_sdk.core import patch

libraries = (['aioboto3'])
patch(libraries)
```