

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.

# Exécutez et gérez les requêtes CloudTrail Lake à l'aide du AWS CLI
<a name="lake-queries-cli"></a>

Vous pouvez utiliser le AWS CLI pour exécuter et gérer vos requêtes CloudTrail Lake. Lorsque vous utilisez le AWS CLI, n'oubliez pas que vos commandes s'exécutent dans la Région AWS configuration adaptée à votre profil. Si vous souhaitez exécuter les commandes dans une autre région, modifiez la région par défaut pour votre profil, ou utilisez le paramètre **--region** avec la commande.

## Commandes disponibles pour les requêtes CloudTrail Lake
<a name="lake-queries-cli-commands"></a>

Les commandes permettant d'exécuter et de gérer les requêtes dans CloudTrail Lake incluent :
+ `start-query`pour exécuter une requête.
+ `describe-query`pour renvoyer des métadonnées relatives à une requête.
+ `generate-query`pour produire une requête à partir d'une invite en anglais. Pour de plus amples informations, veuillez consulter [Créez des requêtes CloudTrail Lake à partir d'instructions en langage naturel](lake-query-generator.md).
+ `get-query-results`pour renvoyer les résultats de la requête pour l'ID de requête spécifié.
+ `list-queries`pour obtenir une liste de requêtes pour le magasin de données d'événements spécifié.
+ `cancel-query`pour annuler une requête en cours d'exécution.

Pour obtenir la liste des commandes disponibles pour les magasins de données d'événements CloudTrail Lake, consultez[Commandes disponibles pour les magasins de données d'événements](lake-eds-cli.md#lake-eds-cli-commands).

Pour obtenir la liste des commandes disponibles pour les tableaux de bord CloudTrail Lake, consultez[Commandes disponibles pour les tableaux de bord](lake-dashboard-cli.md#lake-dashboard-cli-commands).

Pour obtenir la liste des commandes disponibles pour les intégrations de CloudTrail Lake, consultez[Commandes disponibles pour les intégrations de CloudTrail Lake](lake-integrations-cli.md#lake-integrations-cli-commands).

## Produisez une requête à partir d'une invite en langage naturel à l'aide du AWS CLI
<a name="lake-cli-generate-query"></a>

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

## Lancez une requête avec AWS CLI
<a name="lake-cli-start-query"></a>

L'exemple de AWS CLI **start-query** commande suivant exécute une requête sur le magasin de données d'événements spécifié sous forme d'ID dans l'instruction de requête et fournit les résultats de la requête à un compartiment S3 spécifié. Le paramètre `--query-statement` fournit une requête SQL, entre guillemets simples. Les paramètres facultatifs incluent `--delivery-s3-uri`, pour envoyer les résultats d’une requête à un compartiment S3 spécifié. Pour plus d'informations sur le langage de requête que vous pouvez utiliser dans CloudTrail Lake, consultez[CloudTrail Contraintes SQL du lac](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 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.

**Sortie**

```
{
    "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-s3-uri` 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).

## Obtenez les métadonnées relatives à une requête à l'aide du AWS CLI
<a name="lake-cli-describe-query"></a>

L'exemple de AWS CLI **describe-query** commande suivant permet d'obtenir les métadonnées relatives à une requête, notamment le temps d'exécution de la requête en millisecondes, le nombre d'événements analysés et mis en correspondance, le nombre total d'octets analysés et le statut de la requête. La valeur `BytesScanned` correspond au nombre d’octets pour lesquels votre compte est facturé pour la requête, sauf si la requête est toujours en cours d’exécution. Si les résultats de la requête ont été transmis à un compartiment S3, la réponse fournit également l'URI S3 et le statut de livraison.

Vous devez spécifier une valeur pour le paramètre `--query-id` ou pour le paramètre `--query-alias`. La spécification du paramètre `--query-alias` renvoie des informations sur la dernière requête exécutée pour l'alias. 

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

Voici un exemple de réponse.

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

## Obtenez les résultats de vos requêtes à l'aide du AWS CLI
<a name="lake-cli-get-query-results"></a>

L'exemple de commande AWS CLI **get-query-results** suivant montre comment obtenir les résultats des données d'événement d'une requête. Vous devez spécifier le `--query-id` renvoyé par la commande **start-query**. La valeur `BytesScanned` correspond au nombre d'octets pour lesquels votre compte est facturé pour la requête, sauf si la requête est toujours en cours d'exécution. Les paramètres facultatifs incluent `--max-query-results`, pour spécifier un nombre maximal de résultats que la commande doit renvoyer sur une seule page. S'il y a plus de résultats que la valeur `--max-query-results` spécifiée, exécutez à nouveau la commande en ajoutant la valeur `NextToken` renvoyée pour obtenir la page suivante de résultats.

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

**Sortie**

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

## Répertoriez toutes les requêtes sur un magasin de données d'événements à l'aide du AWS CLI
<a name="lake-cli-list-queries"></a>

L'exemple de commande AWS CLI **list-queries** suivant montre comment renvoyer une liste de requêtes et d'états de requête sur un magasin de données d'événement spécifié au cours des sept derniers jours. Vous devez spécifier un ARN ou le suffixe d'ID d'une valeur ARN pour `--event-data-store`. Pour raccourcir la liste des résultats, vous pouvez également spécifier une plage de temps, formatée en horodatage, en ajoutant les paramètres `--start-time` et `--end-time`, et une valeur `--query-status`. Les valeurs valides pour `QueryStatus` incluent `QUEUED`, `RUNNING`, `FINISHED`, `FAILED` ou `CANCELLED`.

**list-queries** dispose également de paramètres de pagination facultatifs. Utilisez `--max-results` pour spécifier un nombre maximal de résultats que la commande doit renvoyer sur une seule page. S'il y a plus de résultats que la valeur `--max-results` spécifiée, exécutez à nouveau la commande en ajoutant la valeur `NextToken` renvoyée pour obtenir la page suivante de résultats.

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

**Sortie**

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

## Annulez une requête en cours à l'aide du AWS CLI
<a name="lake-cli-cancel-query"></a>

L'exemple de AWS CLI **cancel-query** commande suivant annule une requête dont le statut est de`RUNNING`. Vous devez spécifier une valeur pour `--query-id`. Lorsque vous exécutez **cancel-query**, l’état de la requête peut être `CANCELLED` même si l’opération **cancel-query** n’est pas encore terminée.

**Note**  
Une requête annulée peut entraîner des frais. Votre compte est toujours facturé pour la quantité de données analysées avant l'annulation de la requête.

Voici un exemple de CLI.

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

**Sortie**

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