

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用適用於 Node.js 的 X-Ray 開發套件追蹤 SQL 查詢
<a name="xray-sdk-nodejs-sqlclients"></a>

**注意**  
X-Ray 開發套件/協助程式維護通知 – 在 2026 年 2 月 25 日， AWS X-Ray SDKs/協助程式將進入維護模式，其中 AWS 將限制 X-Ray 開發套件和協助程式版本，以僅解決安全問題。如需支援時間軸的詳細資訊，請參閱 [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)。

在對應的適用於 Node.js 的 X-Ray 開發套件用戶端方法中包裝 SQL 用戶端，以檢測 SQL 資料庫查詢。
+  **PostgreSQL** – `AWSXRay.capturePostgres()` 

  ```
  var AWSXRay = require('aws-xray-sdk');
  var pg = AWSXRay.capturePostgres(require('pg'));
  var client = new pg.Client();
  ```
+  **MySQL** – `AWSXRay.captureMySQL()` 

  ```
  var AWSXRay = require('aws-xray-sdk');
  var mysql = AWSXRay.captureMySQL(require('mysql'));
  ...
  var connection = mysql.createConnection(config);
  ```

當您使用受檢測用戶端進行 SQL 查詢時，適用於 Node.js 的 X-Ray 開發套件會在子區段中記錄連線及查詢的相關資訊。

## 在 SQL 子區段中包含其他資料
<a name="xray-sdk-nodejs-sqlclients-additional"></a>

您可以將其他資訊新增至針對 SQL 查詢產生的子區段，只要它對應至允許清單的 SQL 欄位即可。例如，若要在子區段中記錄已淨化的 SQL 查詢字串，您可以將其直接新增至子區段的 SQL 物件。

**Example 將 SQL 指派給子區段**  

```
    const queryString = 'SELECT * FROM MyTable';
connection.query(queryString, ...);

// Retrieve the most recently created subsegment
const subs = AWSXRay.getSegment().subsegments;

if (subs & & subs.length > 0) {
  var sqlSub = subs[subs.length - 1];
  sqlSub.sql.sanitized_query = queryString;
}
```

如需允許清單 SQL 欄位的完整清單，請參閱《 *AWS X-Ray 開發人員指南*》中的 [SQL 查詢](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-sql)。