

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tracciamento delle chiamate AWS SDK con X-Ray SDK per Node.js
<a name="xray-sdk-nodejs-awssdkclients"></a>

**Nota**  
Avviso di SDK/Daemon manutenzione a raggi X: il 25 febbraio 2026, X-Ray SDKs/Daemon entrerà in modalità di manutenzione, in cui AWS limiterà le versioni di AWS X-Ray SDK e Daemon per risolvere solo problemi di sicurezza. Per ulteriori informazioni sulla tempistica del supporto, consulta. [Cronologia di X-Ray SDK e Daemon Support](xray-sdk-daemon-timeline.md) Ti consigliamo di migrare a. OpenTelemetry Per ulteriori informazioni sulla migrazione a OpenTelemetry, vedere [Migrazione dalla strumentazione a raggi X](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html) alla strumentazione. OpenTelemetry 

[Quando l'applicazione effettua chiamate per Servizi AWS archiviare dati, scrivere in una coda o inviare notifiche, X-Ray SDK per Node.js tiene traccia delle chiamate a valle in sottosegmenti.](xray-sdk-nodejs-subsegments.md) Le risorse tracciate Servizi AWS e a cui accedi all'interno di tali servizi (ad esempio, un bucket Amazon S3 o una coda Amazon SQS) vengono visualizzate come nodi downstream sulla mappa di traccia nella console X-Ray.

[https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/welcome.html](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/welcome.html) Ogni versione AWS SDK offre metodi diversi per la strumentazione dei client SDK. AWS 

**Nota**  
Attualmente, l' AWS X-Ray SDK per Node.js restituisce meno informazioni sui segmenti durante la strumentazione dei client AWS SDK per JavaScript V3, rispetto alla strumentazione dei client V2. Ad esempio, i sottosegmenti che rappresentano le chiamate a DynamoDB non restituiranno il nome della tabella. Se hai bisogno di queste informazioni sui segmenti nelle tue tracce, prendi in considerazione l'utilizzo della versione V2. AWS SDK per JavaScript 

------
#### [ AWS SDK per JavaScript V2 ]

Puoi utilizzare tutti i client AWS SDK V2 inserendo l'istruzione `aws-sdk` require in una chiamata a. `AWSXRay.captureAWS`

**Example app.js - Strumentazione SDK AWS**  

```
const AWS = AWSXRay.captureAWS(require('aws-sdk'));
```

Per strumentare i singoli client, inserisci il tuo client AWS SDK in una chiamata a. `AWSXRay.captureAWSClient` Ad esempio, per analizzare un client `AmazonDynamoDB`:

**Example app.js - Strumentazione client DynamoDB**  

```
    const AWSXRay = require('aws-xray-sdk');
...
    const ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB());
```

**avvertimento**  
Non utilizzare `captureAWS` e `captureAWSClient` insieme. Ciò causerà sottosegmenti duplicati.

Se desideri utilizzarla [TypeScript](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html)con i [ECMAScriptmoduli](https://nodejs.org/api/esm.html) (ESM) per caricare il JavaScript codice, usa l'esempio seguente per importare le librerie:

**Example app.js - strumentazione AWS SDK**  

```
import * as AWS from 'aws-sdk';
import * as AWSXRay from 'aws-xray-sdk';
```

Per strumentare tutti i AWS client con ESM, usa il seguente codice:

**Example app.js - Strumentazione AWS SDK**  

```
import * as AWS from 'aws-sdk';
import * as AWSXRay from 'aws-xray-sdk';
const XRAY_AWS = AWSXRay.captureAWS(AWS);
const ddb = new XRAY_AWS.DynamoDB();
```

Per tutti i servizi, puoi vedere il nome dell'API richiamata nella console X-Ray. Per un sottoinsieme di servizi, l'SDK X-Ray aggiunge informazioni al segmento per fornire una maggiore granularità nella mappa dei servizi.

Ad esempio, quando si effettua una chiamata con un client DynamoDB con strumentazione, l'SDK aggiunge il nome della tabella al segmento per le chiamate destinate a una tabella. Nella console, ogni tabella appare come un nodo separato nella mappa dei servizi, con un nodo DynamoDB generico per le chiamate che non hanno come destinazione una tabella.

**Example Sottosegmento per una chiamata a DynamoDB per salvare un elemento**  

```
{
  "id": "24756640c0d0978a",
  "start_time": 1.480305974194E9,
  "end_time": 1.4803059742E9,
  "name": "DynamoDB",
  "namespace": "aws",
  "http": {
    "response": {
      "content_length": 60,
      "status": 200
    }
  },
  "aws": {
    "table_name": "scorekeep-user",
    "operation": "UpdateItem",
    "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG",
  }
}
```

Quando si accede alle risorse con nome, le chiamate ai seguenti servizi creano ulteriori nodi della mappa del servizio. Le chiamate che non sono hanno come obiettivo risorse specifiche creano un nodo generico per il servizio.
+ **Amazon DynamoDB**: nome della tabella
+ **Amazon Simple Storage Service**: nome del bucket e della chiave
+ **Amazon Simple Queue Service**: nome della coda

------
#### [ AWS SDK per JavaScript V3 ]

La AWS SDK per JavaScript V3 è modulare, quindi il codice carica solo i moduli necessari. Per questo motivo, non è possibile strumentare tutti i client AWS SDK poiché la V3 non supporta il metodo. `captureAWS`

Se desideri utilizzare TypeScript ECMAScript Modules (ESM) per caricare il JavaScript codice, puoi utilizzare il seguente esempio per importare le librerie:

```
import * as AWS from 'aws-sdk';
import * as AWSXRay from 'aws-xray-sdk';
```

Strumenta ogni client AWS SDK utilizzando il `AWSXRay.captureAWSv3Client` metodo. Ad esempio, per analizzare un client `AmazonDynamoDB`:

**Example app.js - Strumentazione client DynamoDB che utilizza SDK per Javascript V3**  

```
    const AWSXRay = require('aws-xray-sdk');
    const { DynamoDBClient } = require("@aws-sdk/client-dynamodb");
...
    const ddb = AWSXRay.captureAWSv3Client(new DynamoDBClient({ region: "region" }));
```

Quando si utilizza AWS SDK per JavaScript V3, i metadati come il nome della tabella, il nome del bucket e della chiave o il nome della coda non vengono attualmente restituiti, pertanto la mappa di traccia non conterrà nodi discreti per ogni risorsa denominata, come accade quando si strumentano i client SDK utilizzando la V2. AWS AWS SDK per JavaScript 

**Example Sottosegmento per una chiamata a DynamoDB per salvare un elemento, quando si utilizza la V3 AWS SDK per JavaScript**  

```
{
  "id": "24756640c0d0978a",
  "start_time": 1.480305974194E9,
  "end_time": 1.4803059742E9,
  "name": "DynamoDB",
  "namespace": "aws",
  "http": {
    "response": {
      "content_length": 60,
      "status": 200
    }
  },
  "aws": {
    "operation": "UpdateItem",
    "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG",
  }
}
```

------