

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de uma consulta agendada
<a name="create-scheduled-query"></a>

Crie uma consulta agendada que execute automaticamente as consultas do CloudWatch Logs Insights e entregue os resultados aos destinos escolhidos.

## Pré-requisitos
<a name="create-scheduled-query-prerequisites"></a>

Antes de criar uma consulta agendada, verifique se você tem o seguinte:
+ **Grupos de registros** - Um ou mais grupos de registros contendo os dados que você deseja analisar
+ **Função do IAM de execução** — uma função do IAM com as seguintes permissões:
  + `logs:StartQuery`- Permissão para iniciar consultas do CloudWatch Logs Insights
  + `logs:GetQueryResults`- Permissão para recuperar os resultados da consulta
  + `logs:DescribeLogGroups`- Permissão para acessar as informações do grupo de registros. Isso só é necessário para grupos de registros baseados em prefixos para descoberta de grupos de registros
+ **Permissões de destino** - Permissões adicionais do IAM para o destino escolhido:
  + Para destinos do Amazon S3: `s3:PutObject`
+ **Para AWS CLI e uso da API** - AWS Credenciais configuradas com permissões para chamar CloudWatch o Logs APIs

Para obter exemplos detalhados de políticas do IAM, consulte[Gerenciamento de identidade e acesso para Amazon CloudWatch Logs](auth-and-access-control-cwl.md). Também deve ser observado que você pode ter apenas 1000 consultas agendadas por conta.

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

**Para criar uma consulta agendada (console)**

1. Abra o console de CloudWatch registros em [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. No painel de navegação, escolha **Logs Insights**.

1. Escolha **Criar consulta agendada**.

1. Na seção **Definição da consulta**:

   1. Em **Idioma de consulta**, escolha o idioma de consulta a ser usado na lista.

   1. Em Cadeia de **caracteres de consulta**, insira sua consulta do CloudWatch Logs Insights na caixa.

   1. Em **Grupos de registros**, selecione os grupos de registros a serem consultados na lista.

1. Na seção **Configuração do cronograma**:

   1. Em **Schedule expression**, configure quando a consulta é executada. Escolha entre as opções predefinidas ou insira uma expressão cron personalizada.

   1. **Em Efetivo após a criação**, especifique quando o cronograma se torna ativo. Escolha começar imediatamente ou em uma data e hora específicas usando o YYYY/MM/DD formato.

   1. Em **Intervalo de tempo**, especifique o período de retrospectiva para cada execução de consulta. Insira a duração em minutos que define a distância entre o tempo de execução da consulta.

   1. **Em Continuar indefinidamente**, especifique quando a programação termina. Escolha executar indefinidamente ou até uma data e hora específicas usando o YYYY/MM/DD formato.

1. O console exibe as próximas três execuções de consulta agendadas com base na sua configuração, mostrando as datas e horários exatos em UTC em que a consulta será executada.

1. Na seção **Post query results to S3 - opcional** (se estiver usando o destino S3):

   1. Para o **bucket do S3**, selecione **Esta conta** se o bucket de destino estiver na mesma AWS conta ou selecione **Outra conta** se o bucket estiver em uma AWS conta diferente e forneça o ID da conta proprietária do bucket como entrada.

   1. Para o **URI do Amazon S3**, insira o bucket e o prefixo do Amazon S3 onde os resultados serão armazenados (por exemplo,). `s3://my-bucket/query-results/` Se você selecionou **Esta conta**, você pode escolher **Navegar no Amazon S3** para navegar e selecionar um local existente do Amazon S3.

   1. (Opcional) Para ARN da **chave KMS, insira o ARN** de uma chave AWS KMS gerenciada pelo cliente para criptografar os resultados da consulta usando o SSE-KMS. A chave deve estar na mesma AWS região do bucket Amazon S3 de destino.

1. Na **função do IAM para publicar resultados de consultas na seção Amazon S3**, escolha uma das seguintes opções:

   1. Escolha **Criar automaticamente uma nova função com permissões padrão** para configurar automaticamente uma função do IAM com as permissões necessárias para que os CloudWatch Logs entreguem os resultados da consulta ao Amazon S3.

   1. Escolha **Usar uma função existente** para selecionar uma função do IAM existente com as políticas necessárias para que CloudWatch os registros entreguem os resultados da consulta ao Amazon S3. Use o campo de pesquisa para encontrar e selecionar a função apropriada do IAM na lista.

1. Na seção **Função do IAM para execução agendada de consultas**, escolha uma das seguintes opções:

   1. Escolha **Criar automaticamente uma nova função com permissões padrão** para configurar automaticamente uma função do IAM com as permissões necessárias para que o CloudWatch Logs execute consultas agendadas.

   1. Escolha **Usar uma função existente** para selecionar uma função do IAM existente com as políticas necessárias para que CloudWatch os registros executem consultas agendadas. Use o campo de pesquisa para encontrar e selecionar a função apropriada do IAM na lista.

1. Escolha **Criar agendamento** para criar a consulta agendada.

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

**Para criar uma consulta agendada (AWS CLI)**
+ Use o `create-scheduled-query` comando para criar uma nova consulta agendada:

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

**Para criar uma consulta agendada (API)**
+ Use a `CreateScheduledQuery` ação para criar uma nova consulta agendada. O exemplo a seguir cria uma consulta agendada que é executada a cada hora:

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

------

Depois de criar a consulta agendada, você pode visualizá-la e gerenciá-la na página **Consultas agendadas** e usando a ListScheduledQueries API, que mostra todas as consultas agendadas com seus nomes, datas de criação, status da última execução, hora da última ativação e frequência de repetição.