

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

# Crea query su CloudTrail Lake partendo da istruzioni in linguaggio naturale
<a name="lake-query-generator"></a>

Puoi utilizzare il generatore di query CloudTrail Lake per produrre una query da un prompt in lingua inglese fornito da te. Il generatore di query utilizza l'intelligenza artificiale generativa (AI generativa) per produrre una query ready-to-use SQL dal tuo prompt, che puoi quindi scegliere di eseguire nell'editor di query di Lake o perfezionarla ulteriormente. Non è necessario avere una conoscenza approfondita di SQL o dei campi di CloudTrail eventi per utilizzare il generatore di query.

Il prompt può essere una domanda o una dichiarazione sui dati degli eventi nel tuo archivio dati di eventi CloudTrail Lake. Ad esempio, puoi inserire istruzioni come e "What are my top errors in the past month?" “Give me a list of users that used SNS.”

Un prompt può contenere un minimo di 3 caratteri e un massimo di 500 caratteri.

Non sono previsti costi per la generazione di query; tuttavia, quando si eseguono query, vengono addebitati addebiti in base alla quantità di dati ottimizzati e compressi scansionati. Per aiutare a controllare i costi, si consiglia di limitare le query aggiungendo data e ora di inizio e fine alle query. `eventTime`

**Nota**  
Puoi fornire un feedback su una query generata scegliendo il pulsante pollice su o pollice giù che appare sotto la query generata. Quando fornisci un feedback, CloudTrail salva il prompt e la query generata.  
Non includete informazioni di identificazione personale, riservate o sensibili nelle vostre richieste.  
Questa funzionalità utilizza modelli di linguaggio generativi di intelligenza artificiale di grandi dimensioni (LLMs); consigliamo di ricontrollare la risposta LLM.

**Nota**  
CloudTrail selezionerà automaticamente la regione ottimale all'interno della tua area geografica per elaborare le richieste di inferenza durante la generazione delle query. Ciò ottimizza le risorse di elaborazione disponibili, la disponibilità dei modelli e offre la migliore esperienza al cliente. I dati rimarranno archiviati solo nella regione in cui ha avuto origine la richiesta, tuttavia, le richieste di input e i risultati di output potrebbero essere elaborati al di fuori di tale regione. Tutti i dati verranno trasmessi crittografati attraverso la rete sicura di Amazon.  
 CloudTrail indirizzerà in modo sicuro le richieste di inferenza verso le risorse di calcolo disponibili all'interno dell'area geografica in cui ha avuto origine la richiesta, come segue:   
Le richieste di inferenza provenienti dagli Stati Uniti verranno elaborate all'interno degli Stati Uniti
Le richieste di inferenza provenienti dal Giappone verranno elaborate in Giappone
Le richieste di inferenza provenienti dall'Australia verranno elaborate all'interno dell'Australia.
Le richieste di inferenza provenienti dall'Unione europea verranno elaborate all'interno dell'Unione europea
Le richieste di inferenza provenienti dall'India verranno elaborate all'interno dell'India
 Per disattivare la funzionalità di generazione di query, puoi negare o rimuovere esplicitamente l'`cloudtrail:GenerateQuery`azione dalla policy iam che stai utilizzando. 

Puoi accedere al generatore di query utilizzando la CloudTrail console e. AWS CLI

------
#### [ CloudTrail console ]

**Per utilizzare il generatore di query sulla CloudTrail console**

1. Accedi a Console di gestione AWS e apri la CloudTrail console all'indirizzo [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1.  Dal pannello di navigazione, in **Lake**, scegli **Query**. 

1. Nella pagina **Query**, scegli la scheda **Editor**.

1. Scegliete il data store degli eventi per cui desiderate creare una query.

1. Nell'area del **generatore di query**, inserisci un prompt in inglese semplice. Per alcuni esempi, consulta [Prompt di esempio](#lake-query-generator-examples).

1. Scegliete **Genera interrogazione**. Il generatore di query tenterà di generare una query dal tuo prompt. In caso di successo, il generatore di query fornisce la query SQL nell'editor. Se la richiesta non ha esito positivo, riformula la richiesta e riprova.

1. (Facoltativo) Puoi fornire un feedback sulla query generata. Per fornire un feedback, scegli il pulsante pollice su o pollice giù che appare sotto la richiesta. Quando fornisci un feedback, CloudTrail salva il prompt e la query generata.

1. (Facoltativo) Scegliete **Esegui** per eseguire la query.
**Nota**  
Quando si eseguono le query, vengono addebitati costi in base alla quantità di dati ottimizzati e compressi scansionati. Per aiutare a controllare i costi, si consiglia di limitare le query aggiungendo data e ora di inizio e fine alle query. `eventTime`

1. (Facoltativo) Se si esegue la query e si ottengono risultati, è possibile scegliere **Riepiloga risultati per generare un riepilogo dei risultati della** query in linguaggio naturale in inglese. Questa opzione utilizza l'intelligenza artificiale generativa (AI generativa) per produrre il riepilogo. Per ulteriori informazioni su questa opzione, consulta [Riassumi i risultati delle interrogazioni in linguaggio naturale](query-results-summary.md).

   Puoi fornire un feedback sul riepilogo scegliendo il pulsante pollice su o pollice giù che appare sotto il riepilogo generato.
**Nota**  
La funzionalità di riepilogo delle interrogazioni è disponibile in anteprima per CloudTrail Lake ed è soggetta a modifiche. Questa funzionalità è disponibile nelle seguenti regioni: Asia Pacifico (Tokyo), Stati Uniti orientali (Virginia settentrionale) e Stati Uniti occidentali (Oregon).

------
#### [ AWS CLI ]

**Per generare un'interrogazione con AWS CLI**

Eseguire 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"
}
```

**Per eseguire una query con AWS CLI**

Esegui il `start-query` comando con l'`QueryAlias`output del `generate-query` comando nell'esempio precedente. È inoltre possibile eseguire il `start-query` comando fornendo. `QueryStatement`

```
aws cloudtrail start-query --query-alias AWSCloudTrail-UUID
```

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.

```
{
    "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-s3uri` parametro opzionale, la policy del bucket deve concedere l' CloudTrail autorizzazione 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).

------

## Autorizzazioni richieste
<a name="lake-query-generator-permissions."></a>

Le politiche [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)gestite [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudTrail_FullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudTrail_FullAccess.html)e quelle gestite forniscono entrambe le autorizzazioni necessarie per utilizzare questa funzionalità.

È inoltre possibile includere l'operazione `cloudtrail:GenerateQuery` in una policy inline o gestita dal cliente nuova o esistente.

## Supporto delle Regioni
<a name="lake-query-generator-regions"></a>

Questa funzionalità è supportata nei seguenti paesi: Regioni AWS
+ Regione Asia Pacifico (Mumbai) (ap-south-1)
+ Regione Asia Pacifico (Sydney) (ap-southeast-2)
+ Regione Asia Pacifico (Tokyo) (ap-northeast-1)
+ Regione Canada (Centrale) (ca-central-1)
+ Regione Europa (Londra) (eu-west-2)
+ Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1)
+ Regione Stati Uniti occidentali (Oregon) (us-west-2)

## Limitazioni
<a name="lake-query-generator-limitations"></a>

Di seguito sono riportate le limitazioni del generatore di query:
+ Il generatore di query può accettare solo richieste in inglese.
+ Il generatore di query può generare solo query per archivi di dati di eventi che raccolgono CloudTrail eventi (eventi di gestione, eventi di dati, eventi di attività di rete).
+ Il generatore di query non può generare query per prompt che non riguardano i dati degli eventi di Lake. CloudTrail 

## Prompt di esempio
<a name="lake-query-generator-examples"></a>

Questa sezione fornisce esempi di prompt e le query SQL risultanti generate dai prompt.

Se scegli di eseguire le query di esempio in questa sezione, sostituiscile *eds-id* con l'ID del data store degli eventi su cui desideri interrogare e sostituisci i timestamp con i timestamp appropriati per il tuo caso d'uso. I timestamp hanno il seguente formato:. `YYYY-MM-DD HH:MM:SS`

**Prompt**: What are my top errors in the past month?

**Interrogazione SQL:**

```
SELECT
    errorMessage,
    COUNT(*) as eventCount
FROM
    eds-id
WHERE
    errorMessage IS NOT NULL
AND eventTime >= timestamp '2024-05-01 00:00:00'
AND eventTime <= timestamp '2024-05-31 23:59:59'
GROUP BY 1
ORDER BY 2 DESC
LIMIT 2;
```

**Prompt**: Give me a list of users that used Amazon SNS.

**Interrogazione SQL:**

```
SELECT
    DISTINCT userIdentity.arn AS user
FROM
    eds-id
WHERE
    eventSource = 'sns.amazonaws.com'
```

**Prompt**: What are my API counts each day for read and write events in the past month?

**Interrogazione SQL:**

```
SELECT date(eventTime) AS event_date,
    SUM(
        CASE
            WHEN readonly = true THEN 1
            ELSE 0
        END
    ) AS read_events,
    SUM(
        CASE
            WHEN readonly = false THEN 1
            ELSE 0
        END
    ) AS write_events
FROM
    eds-id
WHERE
    eventTime >= timestamp '2024-05-04 00:00:00'
AND eventTime <= timestamp '2024-06-04 23:59:59'
GROUP BY 1
ORDER BY 1 ASC;
```

**Prompt**: Show any events with access denied errors for the past three weeks.

**Interrogazione SQL:**

```
SELECT *
FROM 
  eds-id
WHERE
  WHERE (errorCode = 'AccessDenied' OR errorMessage = 'Access Denied')
AND eventTime >= timestamp '2024-05-16 01:00:00'
AND eventTime <= timestamp '2024-06-06 01:00:00'
```

**Prompt**: Query the number of calls each operator performed on the date *2024-05-01*. The operator is a principal tag.

**Interrogazione SQL:**

```
SELECT element_at(
        eventContext.tagContext.principalTags,
        'operator'
    ) AS operator,
    COUNT(*) AS eventCount
FROM
    eds-id
WHERE eventtime >= '2024-05-01 00:00:00'
    AND eventtime < '2024-05-01 23:59:59'
GROUP BY 1
ORDER BY 2 DESC;
```

**Prompt**: Give me all event IDs that touched resources within the CloudFormation stack with name *myStack* on the date *2024-05-01*.

**Interrogazione SQL:**

```
SELECT eventID
FROM
    eds-id
WHERE any_match(
        eventContext.tagcontext.resourcetags,
        rt->element_at(rt.tags, 'aws:cloudformation:stack-name') = 'myStack'
    )
    AND eventtime >= '2024-05-01 00:00:00'
    AND eventtime < '2024-05-01 23:59:59'
```

**Prompt**: Count the number of events grouped by resource tag '*solution*' values, listing them in descending order of count.

**Interrogazione SQL:**

```
SELECT element_at(rt.tags, 'solution'),
    count(*) as event_count
FROM
    eds-id,
    unnest(eventContext.tagContext.resourceTags) as rt
WHERE eventtime < '2025-05-14 19:00:00'
GROUP BY 1
ORDER BY 2 DESC;
```

**Prompt**: Find all Amazon S3 data events where resource tag Environment has value *prod*.

**Interrogazione SQL:**

```
SELECT *
FROM
    eds-id
WHERE eventCategory = 'Data'
    AND eventSource = 's3.amazonaws.com'
    AND eventtime >= '2025-05-14 00:00:00'
    AND eventtime < '2025-05-14 20:00:00'
    AND any_match(
        eventContext.tagContext.resourceTags,
        rt->element_at(rt.tags, 'Environment') = 'prod'
    )
```