

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à.

# Utilizzo dell' AWS X-Ray API con la AWS CLI
<a name="xray-api-tutorial"></a>

La AWS CLI consente di accedere direttamente al servizio X-Ray e di utilizzare lo stesso che la console X-Ray utilizza per recuperare APIs il grafico del servizio e i dati grezzi delle tracce. L'applicazione di esempio include script che mostrano come utilizzarli APIs con la AWS CLI.

## Prerequisiti
<a name="xray-api-tutorial-prerequisites"></a>

Questo tutorial utilizza l'applicazione di esempio Scorekeep e gli script in essa inclusi per generare dei dati di tracciamento e una mappa del servizio. Segui le istruzioni nel [tutorial sulle nozioni di base](xray-gettingstarted.md) per avviare l'applicazione.

Questo tutorial utilizza AWS CLI per mostrare l'uso di base dell'API X-Ray. La AWS CLI, [disponibile per Windows, Linux e OS-X,](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) fornisce l'accesso da riga di comando al pubblico per tutti. APIs Servizi AWS

**Nota**  
È necessario verificare che sia configurato nella stessa regione in cui AWS CLI è stata creata l'applicazione di esempio Scorekeep.

Gli script incluso per testare l'applicazione di esempio utilizzano `cURL` per inviare il traffico verso l'API e `jq` per analizzare l'output. Puoi scaricare l'eseguibile di `jq` da [stedolan.github.io](https://stedolan.github.io/jq/) e l'eseguibile di `curl` da [https://curl.haxx.se/download.html](https://curl.haxx.se/download.html). La maggior parte delle installazioni Linux e OS X include cURL.

## Generare i dati di tracciamento
<a name="xray-api-tutorial-generatedata"></a>

Mentre il gioco è in corso, l'applicazione web genera continuamente traffico verso l'API ogni pochi secondi, ma genera solo un tipo di richiesta. Utilizza lo script `test-api.sh` per eseguire scenari completi e generare dati di tracciamento più eterogeni mentre testi l'API.

**Per usare lo script `test-api.sh`**

1. Apri la [console Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk).

1. Accedi alla [console di gestione del](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-console.html) tuo ambiente.

1. Copiare l'**URL** di ambiente dall'intestazione della pagina.

1. Aprire `bin/test-api.sh` e sostituire il valore per l’API con l'URL del proprio ambiente.

   ```
   #!/bin/bash
   API=scorekeep.9hbtbm23t2.us-west-2.elasticbeanstalk.com/api
   ```

1. Eseguire lo script per generare il traffico verso l'API.

   ```
   ~/debugger-tutorial$ ./bin/test-api.sh
   Creating users,
   session,
   game,
   configuring game,
   playing game,
   ending game,
   game complete.
   {"id":"MTBP8BAS","session":"HUF6IT64","name":"tic-tac-toe-test","users":["QFF3HBGM","KL6JR98D"],"rules":"102","startTime":1476314241,"endTime":1476314245,"states":["JQVLEOM2","D67QLPIC","VF9BM9NC","OEAA6GK9","2A705O73","1U2LFTLJ","HUKIDD70","BAN1C8FI","G3UDJTUF","AB70HVEV"],"moves":["BS8F8LQ","4MTTSPKP","463OETES","SVEBCL3N","N7CQ1GHP","O84ONEPD","EG4BPROQ","V4BLIDJ3","9RL3NPMV"]}
   ```

## Usa l'API X-Ray
<a name="xray-api-tutorial-useapi"></a>

La AWS CLI fornisce comandi per tutte le azioni API fornite da X-Ray, tra cui e. [https://docs.aws.amazon.com/xray/latest/api/API_GetServiceGraph.html](https://docs.aws.amazon.com/xray/latest/api/API_GetServiceGraph.html) Per ulteriori informazioni su tutte le operazioni supportate e i tipi di dati che utilizzano, consulta la [Guida di riferimento delle API di AWS X-Ray](https://docs.aws.amazon.com/xray/latest/api/Welcome.html).

**Example bin/service-graph.sh**  

```
EPOCH=$(date +%s)
aws xray get-service-graph --start-time $(($EPOCH-600)) --end-time $EPOCH
```
Lo script recupera un grafo del servizio relativo agli ultimi 10 minuti.  

```
~/eb-java-scorekeep$ ./bin/service-graph.sh | less
{
    "StartTime": 1479068648.0,
    "Services": [
        {
            "StartTime": 1479068648.0,
            "ReferenceId": 0,
            "State": "unknown",
            "EndTime": 1479068651.0,
            "Type": "client",
            "Edges": [
                {
                    "StartTime": 1479068648.0,
                    "ReferenceId": 1,
                    "SummaryStatistics": {
                        "ErrorStatistics": {
                            "ThrottleCount": 0,
                            "TotalCount": 0,
                            "OtherCount": 0
                        },
                        "FaultStatistics": {
                            "TotalCount": 0,
                            "OtherCount": 0
                        },
                        "TotalCount": 2,
                        "OkCount": 2,
                        "TotalResponseTime": 0.054000139236450195
                    },
                    "EndTime": 1479068651.0,
                    "Aliases": []
                }
            ]
        },
        {
            "StartTime": 1479068648.0,
            "Names": [
                "scorekeep.elasticbeanstalk.com"
            ],
            "ReferenceId": 1,
            "State": "active",
            "EndTime": 1479068651.0,
            "Root": true,
            "Name": "scorekeep.elasticbeanstalk.com",
...
```

**Example bin/trace-urls.sh**  

```
EPOCH=$(date +%s)
aws xray get-trace-summaries --start-time $(($EPOCH-120)) --end-time $(($EPOCH-60)) --query 'TraceSummaries[*].Http.HttpURL'
```
Lo script recupera le URLs tracce generate tra uno e due minuti fa.  

```
~/eb-java-scorekeep$ ./bin/trace-urls.sh
[
    "http://scorekeep.elasticbeanstalk.com/api/game/6Q0UE1DG/5FGLM9U3/endtime/1479069438",
    "http://scorekeep.elasticbeanstalk.com/api/session/KH4341QH",
    "http://scorekeep.elasticbeanstalk.com/api/game/GLQBJ3K5/153AHDIA",
    "http://scorekeep.elasticbeanstalk.com/api/game/VPDL672J/G2V41HM6/endtime/1479069466"
]
```

**Example bin/full-traces.sh**  

```
EPOCH=$(date +%s)
TRACEIDS=$(aws xray get-trace-summaries --start-time $(($EPOCH-120)) --end-time $(($EPOCH-60)) --query 'TraceSummaries[*].Id' --output text)
aws xray batch-get-traces --trace-ids $TRACEIDS --query 'Traces[*]'
```
Lo script recupera i tracciamenti completi generati tra uno e due minuti fa.  

```
~/eb-java-scorekeep$ ./bin/full-traces.sh | less
[
    {
        "Segments": [
            {
                "Id": "3f212bc237bafd5d",
                "Document": "{\"id\":\"3f212bc237bafd5d\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5828d9f2-a90669393f4343211bc1cf75\",\"start_time\":1.479072242459E9,\"end_time\":1.479072242477E9,\"parent_id\":\"72a08dcf87991ca9\",\"http\":{\"response\":{\"content_length\":60,\"status\":200}},\"inferred\":true,\"aws\":{\"consistent_read\":false,\"table_name\":\"scorekeep-session-xray\",\"operation\":\"GetItem\",\"request_id\":\"QAKE0S8DD0LJM245KAOPMA746BVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-session-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
            },
            {
                "Id": "309e355f1148347f",
                "Document": "{\"id\":\"309e355f1148347f\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5828d9f2-a90669393f4343211bc1cf75\",\"start_time\":1.479072242477E9,\"end_time\":1.479072242494E9,\"parent_id\":\"37f14ef837f00022\",\"http\":{\"response\":{\"content_length\":606,\"status\":200}},\"inferred\":true,\"aws\":{\"table_name\":\"scorekeep-game-xray\",\"operation\":\"UpdateItem\",\"request_id\":\"388GEROC4PCA6D59ED3CTI5EEJVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-game-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
            }
        ],
        "Id": "1-5828d9f2-a90669393f4343211bc1cf75",
        "Duration": 0.05099987983703613
    }
...
```

## Rimozione
<a name="xray-api-tutorial-cleanup"></a>

Termina il tuo ambiente Elastic Beanstalk per chiudere le istanze EC2 Amazon, le tabelle DynamoDB e altre risorse.

**Per terminare l'ambiente Elastic Beanstalk**

1. Apri la [console Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk).

1. [Accedi alla console di gestione del tuo ambiente.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-console.html)

1. Scegliere **Actions (Operazioni)**.

1. Scegliere **Terminate Environment (Termina ambiente)**.

1. Scegliere **Terminate (Termina)**.

I dati di traccia vengono eliminati automaticamente da X-Ray dopo 30 giorni.