

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

# Esegui e gestisci le query di CloudTrail Lake con AWS CLI
<a name="lake-queries-cli"></a>

Puoi usare il AWS CLI per eseguire e gestire le tue query CloudTrail Lake. Quando usi il AWS CLI, ricorda che i tuoi comandi vengono eseguiti nella Regione AWS configurazione per il tuo profilo. Per eseguire i comandi in un'altra regione, modificare la regione predefinita per il profilo oppure utilizzare il parametro **--region** con il comando.

## Comandi disponibili per le query su CloudTrail Lake
<a name="lake-queries-cli-commands"></a>

I comandi per l'esecuzione e la gestione delle query in CloudTrail Lake includono:
+ `start-query`per eseguire una query.
+ `describe-query`per restituire i metadati relativi a una query.
+ `generate-query`per produrre una query da un prompt in lingua inglese. Per ulteriori informazioni, consulta [Crea query su CloudTrail Lake partendo da istruzioni in linguaggio naturale](lake-query-generator.md).
+ `get-query-results`per restituire i risultati della query per l'ID di query specificato.
+ `list-queries`per ottenere un elenco di interrogazioni per il data store degli eventi specificato.
+ `cancel-query`per annullare una query in esecuzione.

Per un elenco dei comandi disponibili per i data store di eventi CloudTrail Lake, vedi[Comandi disponibili per gli archivi dati degli eventi](lake-eds-cli.md#lake-eds-cli-commands).

Per un elenco dei comandi disponibili per le dashboard di CloudTrail Lake, consulta[Comandi disponibili per i dashboard](lake-dashboard-cli.md#lake-dashboard-cli-commands).

Per un elenco dei comandi disponibili per le integrazioni di CloudTrail Lake, consulta. [Comandi disponibili per le integrazioni con CloudTrail Lake](lake-integrations-cli.md#lake-integrations-cli-commands)

## Produci una query da un prompt in linguaggio naturale con il AWS CLI
<a name="lake-cli-generate-query"></a>

Esegui il `generate-query` comando per generare una query da un prompt in inglese. Per`--event-data-stores`, fornisci l'ARN (o il suffisso ID dell'ARN) dell'archivio dati degli eventi su cui desideri eseguire la query. È possibile specificare un solo archivio dati di eventi. Per`--prompt`, fornisci il prompt in inglese.

```
aws cloudtrail generate-query 
--event-data-stores arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE \
--prompt "Show me all console login events for the past week?"
```

In caso di successo, il comando genera un'istruzione SQL e ne fornisce un'istruzione `QueryAlias` che verrà utilizzata con il `start-query` comando per eseguire la query sull'archivio dati degli eventi.

```
{
  "QueryStatement": "SELECT * FROM $EDS_ID WHERE eventname = 'ConsoleLogin' AND eventtime >= timestamp '2024-09-16 00:00:00' AND eventtime <= timestamp '2024-09-23 00:00:00' AND eventSource = 'signin.amazonaws.com'",
  "QueryAlias": "AWSCloudTrail-UUID"
}
```

## Avviare una query con AWS CLI
<a name="lake-cli-start-query"></a>

Il AWS CLI **start-query** comando di esempio seguente esegue una query sull'event data store specificato come ID nell'istruzione di query e consegna i risultati della query a un bucket S3 specificato. Il parametro `--query-statement` obbligatorio fornisce una query SQL racchiusa tra virgolette singole. I parametri opzionali includono `--delivery-s3-uri`, per fornire i risultati della query a un bucket S3 specificato. Per ulteriori informazioni sul linguaggio di interrogazione che puoi usare in CloudTrail Lake, consulta. [CloudTrail Vincoli Lake SQL](query-limitations.md)

```
aws cloudtrail start-query
--query-statement 'SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10'
--delivery-s3-uri "s3://aws-cloudtrail-lake-query-results-123456789012-us-east-1"
```

La risposta è una stringa `QueryId`. Per ottenere lo stato di una query, eseguire **describe-query** utilizzando il valore `QueryId` restituito da **start-query**. Se la query ha esito positivo, è possibile eseguire **get-query-results** per ottenere i risultati.

**Output**

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE"
}
```

**Nota**  
Le query che vengono eseguite per più di un'ora potrebbero scadere. È comunque possibile ottenere risultati parziali elaborati prima del timeout della query.  
Se stai inviando i risultati della query a un bucket S3 utilizzando il `--delivery-s3-uri` parametro opzionale, la policy del bucket deve concedere l' CloudTrailautorizzazione a recapitare i risultati della query al bucket. Per informazioni sulla modifica manuale della policy bucket, consulta [Policy sui bucket di Amazon S3 per CloudTrail i risultati delle query Lake](s3-bucket-policy-lake-query-results.md).

## Ottieni i metadati relativi a una query con il AWS CLI
<a name="lake-cli-describe-query"></a>

Il AWS CLI **describe-query** comando di esempio seguente ottiene i metadati relativi a una query, tra cui il tempo di esecuzione della query in millisecondi, il numero di eventi analizzati e corrispondenti, il numero totale di byte analizzati e lo stato della query. Il valore `BytesScanned` corrisponde al numero di byte per i quali viene fatturato l'account per la query, a meno che la query non sia ancora in esecuzione. Se i risultati della query sono stati inviati a un bucket S3, la risposta fornirà anche l'URI S3 e lo stato di consegna.

Puoi specificare un valore per il parametro `--query-id` o `--query-alias`. La specifica del parametro `--query-alias` restituisce informazioni sull'ultima query eseguita per l'alias. 

```
aws cloudtrail describe-query --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

Di seguito è riportata una risposta di esempio.

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10", 
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "EventsMatched": 10,
        "EventsScanned": 1000,
        "BytesScanned": 35059,
        "ExecutionTimeInMillis": 3821,
        "CreationTime": "1598911142"
    }
}
```

## Ottieni i risultati delle query con AWS CLI
<a name="lake-cli-get-query-results"></a>

Il comando di esempio seguente della AWS CLI **get-query-results** ottiene i risultati dei dati degli eventi di una query. È necessario specificare il `--query-id` restituito dal comando **start-query**. Il valore `BytesScanned` corrisponde al numero di byte per i quali viene fatturato l'account per la query, a meno che la query non sia ancora in esecuzione. I parametri opzionali includono `--max-query-results`, che consente di specificare il numero massimo di risultati che desideri che il comando restituisca su una singola pagina. Se ci sono più risultati di quanto specificato dal valore `--max-query-results`, esegui nuovamente il comando aggiungendo il valore `NextToken` restituito per visualizzare la pagina dei risultati successiva.

```
aws cloudtrail get-query-results
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**Output**

```
{
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "ResultsCount": 244,
        "TotalResultsCount": 1582,
        "BytesScanned":27044
    },
    "QueryResults": [
      {
        "key": "eventName",
        "value": "StartQuery",
      }
   ],
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10",
    "NextToken": "20add42078135EXAMPLE"
}
```

## Elenca tutte le query su un archivio dati di eventi con AWS CLI
<a name="lake-cli-list-queries"></a>

Il comando di esempio seguente della AWS CLI **list-queries** restituisce un elenco delle query e dei relativi stati eseguite su un archivio di dati degli eventi specificato negli ultimi sette giorni. È necessario specificare un valore di ARN o di suffisso ID di un ARN per `--event-data-store`. Facoltativamente, per restringere l'elenco dei risultati, è possibile specificare un intervallo di tempo, formattato come marche temporali, aggiungendo i parametri `--start-time` e `--end-time` e un valore `--query-status`. I valori validi per `QueryStatus` includono: `QUEUED`, `RUNNING`, `FINISHED`, `FAILED` o `CANCELLED`.

**list-queries** ha anche parametri di impaginazione opzionali. Utilizza `--max-results` per specificare il numero massimo di risultati che desideri che il comando restituisca su una singola pagina. Se ci sono più risultati di quanto specificato dal valore `--max-results`, esegui nuovamente il comando aggiungendo il valore `NextToken` restituito per visualizzare la pagina dei risultati successiva.

```
aws cloudtrail list-queries
--event-data-store EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
--query-status CANCELLED
--start-time 1598384589
--end-time 1598384602
--max-results 10
```

**Output**

```
{
    "Queries": [
        {
          "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598911142
        },
        {
          "QueryId": "EXAMPLE2-4e89-9230-2127-5dr3aEXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598296624
        }
     ],
    "NextToken": "20add42078135EXAMPLE"
}
```

## Annullare una query in esecuzione con il AWS CLI
<a name="lake-cli-cancel-query"></a>

Il AWS CLI **cancel-query** comando di esempio seguente annulla una query con lo stato di`RUNNING`. Devi specificare un valore per `--query-id`. Quando esegui **cancel-query**, lo stato della query potrebbe essere visualizzato come `CANCELLED` anche se l'operazione **cancel-query** non è ancora terminata.

**Nota**  
Una query annullata può comportare addebiti. Sul proprio account sarà comunque addebitata la quantità di dati che è stata scansionata prima dell'annullamento della query.

Di seguito è riportato un esempio della CLI.

```
aws cloudtrail cancel-query
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**Output**

```
QueryId -> (string)
QueryStatus -> (string)
```