

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

# Creazione di un'interrogazione pianificata
<a name="create-scheduled-query"></a>

Crea una query pianificata che esegua automaticamente le query di CloudWatch Logs Insights e fornisca i risultati alle destinazioni scelte.

## Prerequisiti
<a name="create-scheduled-query-prerequisites"></a>

Prima di creare un'interrogazione pianificata, assicurati di disporre di quanto segue:
+ **Gruppi di log**: uno o più gruppi di log contenenti i dati da analizzare
+ **Ruolo IAM di esecuzione**: un ruolo IAM con le seguenti autorizzazioni:
  + `logs:StartQuery`- Autorizzazione ad avviare le query di CloudWatch Logs Insights
  + `logs:GetQueryResults`- Autorizzazione a recuperare i risultati delle interrogazioni
  + `logs:DescribeLogGroups`- Autorizzazione ad accedere alle informazioni del gruppo di log. Questo è richiesto solo per i gruppi di log basati su prefissi per l'individuazione dei gruppi di log
+ **Autorizzazioni di destinazione - Autorizzazioni** IAM aggiuntive per la destinazione scelta:
  + Per le destinazioni Amazon S3: `s3:PutObject`
+ **Per l' AWS CLI utilizzo dell'API**: AWS credenziali configurate con autorizzazioni per chiamare Logs CloudWatch APIs

Per esempi dettagliati di policy IAM, consulta. [Gestione delle identità e degli accessi per Amazon CloudWatch Logs](auth-and-access-control-cwl.md) Inoltre, è importante notare che puoi avere solo 1000 query pianificate per account.

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

**Per creare una query pianificata (console)**

1. Aprire la console CloudWatch Logs a [https://us-east-1.console.aws.amazon.com/cloudwatch/casa? region=us-east-1](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights) \#logsV2:Logs-Insights.

1. **Nel riquadro di navigazione, scegli Logs Insights.**

1. Scegli **Crea interrogazione pianificata**.

1. Nella sezione **Definizione della query**:

   1. Per il **linguaggio di interrogazione**, scegli il linguaggio di query da usare dall'elenco.

   1. Per la **stringa Query**, inserisci la tua query CloudWatch Logs Insights nella casella.

   1. Per **i gruppi di log**, seleziona i gruppi di log da interrogare dall'elenco.

1. Nella sezione **Configurazione della pianificazione**:

   1. Per **l'espressione Schedule**, configura quando viene eseguita la query. Scegli tra le opzioni predefinite o inserisci un'espressione cron personalizzata.

   1. Per **Efficace al momento della creazione**, specifica quando la pianificazione diventa attiva. Scegli di iniziare immediatamente o in una data e ora specifiche utilizzando il YYYY/MM/DD formato.

   1. Per **Intervallo di tempo**, specifica il periodo di riferimento per ogni esecuzione di query. Immettete la durata in minuti che definisce la distanza tra il tempo di esecuzione e l'interrogazione.

   1. Per **Continua indefinitamente**, specifica quando termina la pianificazione. Scegli di eseguire a tempo indeterminato o fino a una data e ora specifiche utilizzando YYYY/MM/DD il formato.

1. La console visualizza le tre successive esecuzioni di query pianificate in base alla configurazione, mostrando le date e gli orari esatti in UTC in cui verrà eseguita la query.

1. Nella sezione **Pubblica i risultati della query su S3 - opzionale** (se si utilizza la destinazione S3):

   1. Per il **bucket S3**, seleziona **Questo account** se il bucket di destinazione si trova nello stesso AWS account oppure seleziona **Altro account se il bucket si trova in un account** diverso e inserisci come input l'ID AWS account dell'account proprietario del bucket.

   1. Per l'**URI di Amazon S3**, inserisci il bucket Amazon S3 e il prefisso in cui verranno archiviati i risultati (ad esempio,). `s3://my-bucket/query-results/` Se hai selezionato **Questo account**, puoi scegliere **Browse Amazon S3** per navigare e selezionare una posizione Amazon S3 esistente.

   1. (Facoltativo) Per l'**ARN della chiave KMS**, inserisci l'ARN di una chiave AWS KMS gestita dal cliente per crittografare i risultati della query utilizzando SSE-KMS. La chiave deve trovarsi nella stessa AWS regione del bucket Amazon S3 di destinazione.

1. Nella sezione **Ruolo IAM per la pubblicazione dei risultati delle query su Amazon** S3, scegli una delle seguenti opzioni:

   1. Scegli **Crea automaticamente un nuovo ruolo con autorizzazioni predefinite** per configurare automaticamente un ruolo IAM con le autorizzazioni necessarie affinché CloudWatch Logs fornisca i risultati delle query ad Amazon S3.

   1. Scegli **Usa un ruolo esistente** per selezionare un ruolo IAM esistente con le policy richieste affinché CloudWatch Logs fornisca i risultati delle query ad Amazon S3. Utilizza il campo di ricerca per trovare e selezionare il ruolo IAM appropriato dall'elenco.

1. Nella sezione **Ruolo IAM per l'esecuzione pianificata delle query**, scegli una delle seguenti opzioni:

   1. Scegli **Crea automaticamente un nuovo ruolo con autorizzazioni predefinite** per configurare automaticamente un ruolo IAM con le autorizzazioni richieste ai CloudWatch log per eseguire le query pianificate.

   1. Scegli **Usa un ruolo esistente per selezionare un ruolo** IAM esistente con le policy richieste affinché CloudWatch Logs esegua le query pianificate. Utilizza il campo di ricerca per trovare e selezionare il ruolo IAM appropriato dall'elenco.

1. Scegli **Crea pianificazione** per creare la query pianificata.

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

**Per creare un'interrogazione pianificata (AWS CLI)**
+ Utilizzate il `create-scheduled-query` comando per creare una nuova interrogazione pianificata:

  ```
  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 ]

**Per creare una query pianificata (API)**
+ Utilizza l'`CreateScheduledQuery`azione per creare una nuova query pianificata. L'esempio seguente crea una query pianificata che viene eseguita ogni ora:

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

------

Dopo aver creato la query pianificata, è possibile visualizzarla e gestirla dalla pagina **Query pianificate** e utilizzando l' ListScheduledQueries API, che mostra tutte le query pianificate con i relativi nomi, date di creazione, stato dell'ultima esecuzione, ora dell'ultima attivazione e frequenza di ripetizione.