

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.

# Commencer à utiliser les requêtes planifiées
<a name="scheduled-queries-getting-started"></a>

Lorsque vous créez une requête planifiée, vous configurez plusieurs composants clés qui définissent le mode d'exécution de votre requête et l'endroit où les résultats sont fournis. La compréhension de ces composants vous aidera à configurer une analyse automatique efficace des journaux.

Chaque requête planifiée comprend les éléments clés suivants :

**Configuration des requêtes**  
La chaîne de requête CloudWatch Logs Insights, les groupes de journaux cibles et le langage de requête à utiliser pour l'analyse.

**Expression de planification**  
Expression cron ou calendrier de fréquence qui définit le moment où la requête est exécutée. Vous pouvez définir des paramètres de fuseau horaire pour garantir que les requêtes sont exécutées à l'heure locale correcte. La console affiche une description lisible par l'homme de votre emploi du temps, telle que « Exécutez la requête tous les mardis à 15h10 pendant une période de 5 minutes, avec effet immédiat, en UTC, jusqu'à une durée indéfinie ».

**Plage horaire**  
Période rétrospective pour chaque exécution de requête, définie par un décalage entre l'heure de début et l'heure d'exécution. Cela détermine la quantité de données historiques que chaque exécution de requête analysera.

**Aperçu du calendrier d'exécution**  
La console affiche les trois prochaines exécutions de requêtes planifiées avec les dates et heures exactes (par exemple, 2025/10/28 15:10, UTC ; 2025/11/04 15:10, UTC ; 2025/11/11 15:10, UTC), ce qui vous aide à vérifier que le calendrier est correctement configuré.

**Destinations**  
Où les résultats de la requête sont fournis après une exécution réussie. Les destinations prises en charge incluent les compartiments Amazon S3 et, par défaut, les métadonnées des résultats sont envoyées au bus d'événements par défaut.

**Rôle d'exécution**  
Rôle IAM que CloudWatch Logs suppose d'exécuter la requête et de fournir les résultats aux destinations spécifiées.

Avant de créer des requêtes planifiées, assurez-vous que les autorisations et les ressources nécessaires sont configurées.

# Création d'une requête planifiée
<a name="create-scheduled-query"></a>

Créez une requête planifiée qui exécute automatiquement les requêtes CloudWatch Logs Insights et fournit les résultats aux destinations que vous avez choisies.

## Conditions préalables
<a name="create-scheduled-query-prerequisites"></a>

Avant de créer une requête planifiée, assurez-vous de disposer des éléments suivants :
+ **Groupes de journaux** : un ou plusieurs groupes de journaux contenant les données que vous souhaitez analyser
+ Rôle **IAM d'exécution : rôle** IAM doté des autorisations suivantes :
  + `logs:StartQuery`- Autorisation de lancer CloudWatch des requêtes Logs Insights
  + `logs:GetQueryResults`- Autorisation de récupérer les résultats de la requête
  + `logs:DescribeLogGroups`- Autorisation d'accéder aux informations du groupe de journaux. Cela n'est requis que pour les groupes de journaux basés sur des préfixes pour la découverte des groupes de journaux
+ Autorisations de **destination : autorisations** IAM supplémentaires pour la destination que vous avez choisie :
  + Pour les destinations Amazon S3 : `s3:PutObject`
+ **Pour AWS CLI et utilisation de l'API** - AWS Informations d'identification configurées avec autorisations pour appeler CloudWatch les journaux APIs

Pour des exemples de politique IAM détaillés, voir[Gestion des identités et des accès pour Amazon CloudWatch Logs](auth-and-access-control-cwl.md). Il convient également de noter que vous ne pouvez avoir que 1000 requêtes planifiées par compte.

------
#### [ Console ]

**Pour créer une requête planifiée (console)**

1. Vous voulez ouvrir la console CloudWatch Logs à [https://us-east-1.console.aws.amazon.com/cloudwatch/la maison ? region=us-east-1 \$1LogsV2:Logs-Insights](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights).

1. Dans le volet de navigation, sélectionnez **Logs Insights**.

1. Choisissez **Créer une requête planifiée**.

1. Dans la section **Définition de la requête** :

   1. Pour **Langue de requête**, choisissez la langue de requête à utiliser dans la liste.

   1. Pour la **chaîne de requête**, entrez votre requête CloudWatch Logs Insights dans le champ.

   1. Pour les **groupes de journaux**, sélectionnez les groupes de journaux à interroger dans la liste.

1. Dans la section **Configuration du calendrier** :

   1. Pour l'**expression Schedule**, configurez le moment où la requête s'exécute. Choisissez parmi les options prédéfinies ou entrez une expression cron personnalisée.

   1. Pour **Effectif à la création**, spécifiez à quel moment le calendrier devient actif. Choisissez de commencer immédiatement ou à une date et à une heure spécifiques en utilisant le YYYY/MM/DD format.

   1. Pour **Plage de temps**, spécifiez la période rétrospective pour chaque exécution de requête. Entrez la durée en minutes qui définit la distance qui s'est écoulée depuis l'heure d'exécution de la requête.

   1. Pour **Continuer indéfiniment**, spécifiez la date de fin du calendrier. Choisissez de l'exécuter indéfiniment ou jusqu'à une date et une heure spécifiques en utilisant le YYYY/MM/DD format.

1. La console affiche les trois prochaines exécutions de requête planifiées en fonction de votre configuration, en indiquant les dates et heures exactes en UTC auxquelles la requête sera exécutée.

1. Dans la section **Publier les résultats de la requête dans S3 - facultatif** (si vous utilisez la destination S3) :

   1. Pour le **compartiment S3**, sélectionnez **Ce compte** si le compartiment de destination se trouve dans le même AWS compte, ou sélectionnez **Un autre compte** si le compartiment se trouve dans un autre AWS compte et saisissez l'ID du compte propriétaire du compartiment en entrée.

   1. Pour l'**URI Amazon S3**, entrez le compartiment Amazon S3 et le préfixe dans lesquels les résultats seront stockés (par exemple,`s3://my-bucket/query-results/`). Si vous avez sélectionné **Ce compte**, vous pouvez choisir **Parcourir Amazon S3** pour naviguer et sélectionner un emplacement Amazon S3 existant.

   1. (Facultatif) Pour l'**ARN de la clé KMS**, entrez l'ARN d'une AWS KMS clé gérée par le client pour chiffrer les résultats de la requête à l'aide de SSE-KMS. La clé doit se trouver dans la même AWS région que le compartiment Amazon S3 de destination.

1. Dans la section **Rôle IAM pour publier les résultats des requêtes sur Amazon S3**, choisissez l'une des options suivantes :

   1. Choisissez **Créer automatiquement un nouveau rôle avec des autorisations par défaut** pour configurer automatiquement un rôle IAM avec les autorisations requises pour que CloudWatch Logs fournisse les résultats des requêtes à Amazon S3.

   1. Choisissez **Utiliser un rôle existant** pour sélectionner un rôle IAM existant avec les politiques requises pour que CloudWatch Logs fournisse les résultats des requêtes à Amazon S3. Utilisez le champ de recherche pour trouver et sélectionner le rôle IAM approprié dans la liste.

1. Dans la section **Rôle IAM pour l'exécution planifiée des requêtes**, choisissez l'une des options suivantes :

   1. Choisissez **Créer automatiquement un nouveau rôle avec des autorisations par défaut** pour configurer automatiquement un rôle IAM avec les autorisations requises pour que CloudWatch Logs exécute des requêtes planifiées.

   1. Choisissez **Utiliser un rôle existant** pour sélectionner un rôle IAM existant avec les politiques requises pour que les CloudWatch journaux exécutent des requêtes planifiées. Utilisez le champ de recherche pour trouver et sélectionner le rôle IAM approprié dans la liste.

1. Choisissez **Créer un calendrier** pour créer la requête planifiée.

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

**Pour créer une requête planifiée (AWS CLI)**
+ Utilisez la `create-scheduled-query` commande pour créer une nouvelle requête planifiée :

  ```
  aws logs create-scheduled-query \
      --name "ErrorAnalysisQuery" \
      --query-language "CWLI" \
      --query-string "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)" \
      --schedule-expression "cron(8 * * * ? *)" \
      --execution-role-arn "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole" \
      --log-group-identifiers "/aws/lambda/my-function" "/aws/apigateway/my-api" \
      --state "ENABLED"
  ```

------
#### [ API ]

**Pour créer une requête planifiée (API)**
+ Utilisez cette `CreateScheduledQuery` action pour créer une nouvelle requête planifiée. L'exemple suivant crée une requête planifiée qui s'exécute toutes les heures :

  ```
  {
      "name": "ErrorAnalysisQuery",
      "queryLanguage": "CWLI",
      "queryString": "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)",
      "scheduleExpression": "cron(8 * * * ? *)",
      "executionRoleArn": "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole",
      "logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/apigateway/my-api"],
      "state": "ENABLED"
  }
  ```

------

Après avoir créé la requête planifiée, vous pouvez la consulter et la gérer à partir de la page des **requêtes planifiées** et à l'aide de l' ListScheduledQueries API, qui affiche toutes vos requêtes planifiées avec leurs noms, dates de création, statut de la dernière exécution, heure du dernier déclenchement et fréquence de répétition.

# Affichage et gestion des requêtes planifiées
<a name="scheduled-queries-management"></a>

Les informations suivantes sont disponibles pour chaque requête :

**Nom**  
Le nom unique que vous avez attribué à la requête planifiée. Sélectionnez le nom pour afficher l'historique détaillé de la configuration et de l'exécution.

**Date de création**  
Date à laquelle la requête planifiée a été créée, affichée au YYYY-MM-DD format.

**État de la dernière course**  
État d'exécution de la dernière requête exécutée. Les valeurs possibles incluent :  
+ **Terminé** : la requête a été exécutée avec succès et les résultats ont été envoyés à toutes les destinations configurées.
+ **Échec : échec** de l'exécution de la requête ou de la livraison des résultats. Consultez l'historique des exécutions pour obtenir des informations détaillées sur les erreurs.
+ **Requête non valide** : la requête n'est pas valide et présente des problèmes de syntaxe
+ **Délai d'expiration : le délai imparti** à la requête a expiré. Une requête expire automatiquement au bout de 60 minutes

**Heure du dernier déclenchement**  
Date et heure de dernière exécution de la requête, affichées au format YYYY-MM-DD HH:MM:SS. Affiche **Jamais** si la requête n'a pas encore été exécutée.

**Répéter chaque**  
Fréquence de planification de la requête. Affiche **Custom** pour les requêtes utilisant des expressions cron ou des descriptions de fréquence spécifiques pour des plannings plus simples.

La page **Requêtes planifiées** fournit une vue d'ensemble de toutes vos requêtes planifiées, indiquant leur statut actuel et leur historique d'exécution afin que vous puissiez consulter, surveiller et gérer toutes vos requêtes planifiées à partir d'un emplacement centralisé. Utilisez ces informations pour surveiller les performances des requêtes, identifier les problèmes et gérer vos flux de travail d'analyse automatique des journaux.

------
#### [ Console ]

**Pour consulter les requêtes planifiées (console)**

1. Vous voulez ouvrir la console CloudWatch Logs à [https://us-east-1.console.aws.amazon.com/cloudwatch/la maison ? region=us-east-1 \$1LogsV2:Logs-Insights](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights).

1. Dans la console CloudWatch Logs, choisissez **Requête planifiée**, **Afficher les requêtes planifiées**.

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

**Pour répertorier les requêtes planifiées (AWS CLI)**
+ Utilisez la `list-scheduled-queries` commande pour répertorier toutes les requêtes planifiées :

  ```
  aws logs list-scheduled-queries --max-results 10
  ```

------
#### [ API ]

**Pour répertorier les requêtes planifiées (API)**
+ Utilisez l'`ListScheduledQueries`action pour récupérer toutes les requêtes planifiées :

  ```
  {
      "maxResults": 10
  }
  ```

------

L'en-tête de la page **Requêtes planifiées** indique le nombre total de requêtes planifiées dans votre compte, ce qui vous permet de suivre votre utilisation et de gérer efficacement vos flux de travail d'analyse automatique des journaux.

# Afficher l'historique d'exécution des requêtes planifiées
<a name="scheduled-queries-execution-history"></a>

Utilisez l'historique d'exécution pour surveiller les performances de vos requêtes planifiées et résoudre les problèmes liés à l'exécution des requêtes ou à la livraison des résultats.

L'historique des exécutions indique le statut de chaque requête exécutée, y compris les exécutions réussies, les échecs et les résultats du traitement de destination. Vous pouvez utiliser ces informations pour identifier des modèles, diagnostiquer des problèmes et vérifier que vos requêtes s'exécutent comme prévu.

------
#### [ Console ]

**Pour consulter l'historique des exécutions (console)**

1. Dans la console CloudWatch Logs, choisissez **Requête planifiée**, **Afficher les requêtes planifiées**.

1. Sélectionnez la requête planifiée que vous souhaitez examiner.

1. Sélectionnez l'onglet **Historique d'exécution**.

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

**Pour consulter l'historique des exécutions (AWS CLI)**

1. Utilisez la `get-scheduled-query-history` commande pour récupérer l'historique d'exécution d'une requête planifiée :

   ```
   aws logs get-scheduled-query-history \
       --identifier "DailyErrorMonitoring" \
       --start-time 1743379200 \
       --end-time 1743465600 \
       --max-results 10
   ```

1. Pour filtrer par statut d'exécution, ajoutez le `--execution-statuses` paramètre :

   ```
   aws logs get-scheduled-query-history \
       --identifier "DailyErrorMonitoring" \
       --start-time 1743379200 \
       --end-time 1743465600 \
       --max-results 1 \
       --execution-statuses "SUCCEEDED"
   ```

------
#### [ API ]

**Pour consulter l'historique des exécutions (API)**
+ Utilisez l'`GetScheduledQueryHistory`action pour récupérer l'historique des exécutions :

  ```
  {
      "identifier": "DailyErrorMonitoring",
      "startTime": 1743379200,
      "endTime": 1743465600,
      "maxResults": 10,
      "executionStatuses": ["SUCCEEDED", "FAILED"]
  }
  ```

------

L'historique d'exécution affiche :
+ **État de l'exécution** : en cours, terminée, échec, expiration du délai ou InvalidQuery
+ **Heure de déclenchement** : date à laquelle la requête a été exécutée
+ **Destinations** - État du traitement pour chaque destination configurée, y compris S3 et EventBridge
+ **Messages d'erreur** : détails sur les échecs éventuels lors de l'exécution des requêtes ou du traitement des destinations

# Mettre à jour une requête planifiée
<a name="scheduled-queries-updating"></a>

Modifiez la configuration de votre requête planifiée pour modifier la chaîne de requête, le calendrier, les destinations ou le rôle d'exécution en fonction de l'évolution de vos besoins.

Vous pouvez mettre à jour n'importe quel aspect d'une requête planifiée, notamment la chaîne de requête, l'expression de planification, les destinations et le rôle d'exécution. Les modifications prennent effet immédiatement pour les futures exécutions.

------
#### [ Console ]

**Pour mettre à jour une requête planifiée (console)**

1. Dans la console CloudWatch Logs, choisissez **Requête planifiée**, **Afficher les requêtes planifiées**.

1. Sélectionnez la requête planifiée que vous souhaitez mettre à jour.

1. Choisissez **Modifier**.

1. Modifiez la configuration selon vos besoins.

1. Sélectionnez **Enregistrer les modifications**.

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

**Pour mettre à jour une requête planifiée (AWS CLI)**
+ Utilisez la `update-scheduled-query` commande pour modifier une requête planifiée existante :

  ```
  aws logs update-scheduled-query \
      --identifier "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f" \
      --description "Monitor for ERROR level logs daily" \
      --query-language "LogsQL" \
      --query-string "fields @timestamp, @message | filter @message like /ERROR/" \
      --log-group-identifiers "/aws/lambda/my-function-1" "/aws/lambda/my-function-2"
  ```

------
#### [ API ]

**Pour mettre à jour une requête planifiée (API)**

1. Utilisez l'`UpdateScheduledQuery`action pour modifier la configuration des requêtes planifiées :

   ```
   {
       "identifier": "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f",
       "queryString": "fields @timestamp, @message | filter @message like /WARNING|ERROR/ | stats count() by bin(5m)",
       "scheduleExpression": "cron(0 */2 * * ? *)",
       "state": "ENABLED"
   }
   ```

1. Pour mettre à jour plusieurs paramètres de configuration à la fois :

   ```
   {
       "identifier": "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f",
       "queryString": "fields @timestamp, @message, @level | filter @level = 'ERROR'",
       "scheduleExpression": "cron(0 8,12,16 * * ? *)",
       "executionRoleArn": "arn:aws:iam::111122223333:role/UpdatedScheduledQueryRole",
       "logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/lambda/another-function"],
       "destinationConfiguration": {
           "s3Configuration": {
               "destinationIdentifier": "s3://111122223333-sqn-results-bucket/processed-results",
               "roleArn": "arn:aws:iam::111122223333:role/Admin"
           }
       }
   }
   ```

------