

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Créez des requêtes CloudTrail Lake à partir d'instructions en langage naturel
<a name="lake-query-generator"></a>

Vous pouvez utiliser le générateur de requêtes CloudTrail Lake pour produire une requête à partir d'une invite en anglais que vous fournissez. Le générateur de requêtes utilise l'intelligence artificielle générative (IA générative) pour produire une requête ready-to-use SQL à partir de votre invite, que vous pouvez ensuite choisir d'exécuter dans l'éditeur de requêtes de Lake ou de peaufiner davantage. Il n'est pas nécessaire de posséder une connaissance approfondie du SQL ou des champs d' CloudTrail événements pour utiliser le générateur de requêtes.

L'invite peut être une question ou une déclaration concernant les données d'événements de votre banque de données d'événements CloudTrail Lake. Par exemple, vous pouvez saisir des messages tels "What are my top errors in the past month?" que et “Give me a list of users that used SNS.”

Une invite peut comporter un minimum de 3 caractères et un maximum de 500 caractères.

La génération de requêtes est gratuite ; toutefois, lorsque vous exécutez des requêtes, vous devez payer des frais en fonction de la quantité de données optimisées et compressées numérisées. Pour mieux contrôler les coûts, nous vous recommandons de limiter les requêtes en ajoutant des `eventTime` horodatages de début et de fin aux requêtes.

**Note**  
Vous pouvez fournir des commentaires sur une requête générée en cliquant sur le bouton pouce vers le haut ou pouce bas qui apparaît sous la requête générée. Lorsque vous fournissez des commentaires, CloudTrail enregistre votre invite et la requête générée.  
N'incluez aucune information d'identification personnelle, confidentielle ou sensible dans vos invites.  
Cette fonctionnalité utilise de grands modèles de langage basés sur l'IA générative (LLMs) ; nous vous recommandons de vérifier la réponse LLM.

**Note**  
CloudTrail sélectionnera automatiquement la région optimale au sein de votre zone géographique pour traiter les demandes d'inférence lors de la génération de requêtes. Cela permet d'optimiser les ressources informatiques disponibles, la disponibilité des modèles et d'offrir la meilleure expérience client. Vos données resteront stockées uniquement dans la région d'origine de la demande. Toutefois, les demandes de saisie et les résultats de sortie peuvent être traités en dehors de cette région. Toutes les données seront transmises chiffrées sur le réseau sécurisé d’Amazon.  
 CloudTrail acheminera en toute sécurité vos demandes d'inférence vers les ressources informatiques disponibles dans la zone géographique d'origine de la demande, comme suit :   
Les demandes d'inférence provenant des États-Unis seront traitées aux États-Unis
Les demandes d'inférence provenant du Japon seront traitées au Japon
Les demandes d'inférence provenant de l'Australie seront traitées en Australie.
Les demandes d'inférence provenant de l'Union européenne seront traitées au sein de l'Union européenne
Les demandes d'inférence provenant de l'Inde seront traitées en Inde
 Pour désactiver la fonctionnalité de génération de requêtes, vous pouvez explicitement refuser ou supprimer l'`cloudtrail:GenerateQuery`action de la politique iam que vous utilisez. 

Vous pouvez accéder au générateur de requêtes à l'aide de la CloudTrail console et AWS CLI.

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

**Pour utiliser le générateur de requêtes sur la CloudTrail console**

1. Connectez-vous à la CloudTrail console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1.  Dans le panneau de navigation, sous **Lake**, choisissez **Requête**. 

1. Sur la page **Requête**, choisissez l'onglet **Editeur**.

1. Choisissez le magasin de données d'événements pour lequel vous souhaitez créer une requête.

1. Dans la zone du **générateur de requêtes**, entrez une invite en anglais simple. Pour obtenir des exemples, consultez [Exemples d’invites](#lake-query-generator-examples).

1. Choisissez **Générer une requête**. Le générateur de requêtes tentera de générer une requête à partir de votre invite. En cas de succès, le générateur de requêtes fournit la requête SQL dans l'éditeur. Si l'invite échoue, reformulez-la et réessayez.

1. (Facultatif) Vous pouvez fournir des commentaires sur la requête générée. Pour envoyer des commentaires, cliquez sur le bouton pouce vers le haut ou pouce bas qui apparaît sous l'invite. Lorsque vous fournissez des commentaires, CloudTrail enregistre votre invite et la requête générée.

1. (Facultatif) Choisissez **Exécuter** pour exécuter la requête.
**Note**  
Lorsque vous exécutez des requêtes, des frais sont facturés en fonction de la quantité de données optimisées et compressées numérisées. Pour mieux contrôler les coûts, nous vous recommandons de limiter les requêtes en ajoutant des `eventTime` horodatages de début et de fin aux requêtes.

1. (Facultatif) Si vous exécutez la requête et que vous obtenez des résultats, vous pouvez choisir **Résumer les résultats** pour générer un résumé en langage naturel en anglais des résultats de la requête. Cette option utilise l'intelligence artificielle générative (IA générative) pour produire le résumé. Pour plus d’informations sur cette option, consultez [Résumez les résultats des requêtes en langage naturel](query-results-summary.md).

   Vous pouvez fournir des commentaires sur le résumé en cliquant sur le bouton pouce vers le haut ou pouce bas qui apparaît sous le résumé généré.
**Note**  
La fonctionnalité de synthèse des requêtes est en version préliminaire pour CloudTrail Lake et est sujette à modification. Cette fonctionnalité est disponible dans les régions suivantes : Asie-Pacifique (Tokyo), USA Est (Virginie du Nord) et USA Ouest (Oregon).

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

**Pour générer une requête à l'aide du AWS CLI**

Exécutez la `generate-query` commande pour générer une requête à partir d'une invite en anglais. Pour`--event-data-stores`, indiquez l'ARN (ou le suffixe d'ID de l'ARN) du magasin de données d'événements que vous souhaitez interroger. Vous ne pouvez spécifier qu'un seul magasin de données d'événements. Pour`--prompt`, fournissez l'invite en anglais. 

```
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?"
```

En cas de succès, la commande génère une instruction SQL et fournit une instruction `QueryAlias` que vous utiliserez avec la `start-query` commande pour exécuter la requête dans votre banque de données d'événements.

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

**Pour exécuter une requête à l'aide du AWS CLI**

Exécutez la `start-query` commande avec le `QueryAlias` résultat généré par la `generate-query` commande de l'exemple précédent. Vous avez également la possibilité d'exécuter la `start-query` commande en fournissant le`QueryStatement`.

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

La réponse est une chaîne `QueryId`. Pour obtenir le statut d'une requête, exécutez `describe-query` en utilisant la valeur `QueryId` renvoyée par `start-query`. Si la requête est réussie, vous pouvez exécuter `get-query-results` pour obtenir des résultats.

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

**Note**  
Les requêtes qui s’exécutent pendant plus d’une heure peuvent prendre fin. Vous pouvez toujours obtenir des résultats partiels traités avant l’échéance de la requête.  
Si vous transmettez les résultats de la requête à un compartiment S3 à l'aide du `--delivery-s3uri` paramètre facultatif, la politique du compartiment doit CloudTrail autoriser la livraison des résultats de la requête au compartiment. Pour en savoir plus sur la modification manuelle de la politique de compartiment, consultez [Politique relative aux compartiments Amazon S3 pour les résultats des requêtes CloudTrail Lake](s3-bucket-policy-lake-query-results.md).

------

## Autorisations requises
<a name="lake-query-generator-permissions."></a>

Les politiques [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)gérées [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)et les politiques administrées fournissent toutes deux les autorisations nécessaires pour utiliser cette fonctionnalité.

Vous pouvez également inclure l’action `cloudtrail:GenerateQuery` dans une politique en ligne ou gérée par le client, qu’elle soit nouvelle ou existante.

## Prise en charge de la région
<a name="lake-query-generator-regions"></a>

Cette fonctionnalité est prise en charge dans les pays suivants Régions AWS :
+ Région Asie-Pacifique (Mumbai) (ap-south-1)
+ Région Asie-Pacifique (Sydney) (ap-southeast-2)
+ Région Asie-Pacifique (Tokyo) (ap-northeast-1)
+ Région Canada (Centre) (ca-central-1)
+ Région Europe (Londres) (eu-west-2)
+ Région USA Est (Virginie du Nord) (us-east-1)
+ Région USA Ouest (Oregon) (us-west-2)

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

Les limites du générateur de requêtes sont les suivantes :
+ Le générateur de requêtes ne peut accepter que les demandes en anglais.
+ Le générateur de requêtes peut uniquement générer des requêtes pour les magasins de données d'événements qui collectent des CloudTrail événements (événements de gestion, événements de données, événements d'activité réseau).
+ Le générateur de requêtes ne peut pas générer de requêtes pour des invites qui ne concernent pas les données d'événements de CloudTrail Lake.

## Exemples d’invites
<a name="lake-query-generator-examples"></a>

Cette section fournit des exemples d'invite et les requêtes SQL générées à partir de ces invites.

Si vous choisissez d'exécuter les exemples de requêtes présentés dans cette section, remplacez-les {{eds-id}} par l'ID du magasin de données d'événements que vous souhaitez interroger et remplacez les horodatages par les horodatages appropriés à votre cas d'utilisation. Les horodatages ont le format suivant :. `YYYY-MM-DD HH:MM:SS`

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

**Requête 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;
```

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

**Requête SQL :**

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

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

**Requête 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;
```

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

**Requête 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}}'
```

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

**Requête 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;
```

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

**Requête 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'
```

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

**Requête 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;
```

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

**Requête 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'
    )
```