

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crear una consulta programada
<a name="create-scheduled-query"></a>

Cree una consulta programada que ejecute automáticamente las consultas de CloudWatch Logs Insights y entregue los resultados a los destinos que elija.

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

Antes de crear una consulta programada, asegúrese de tener lo siguiente:
+ **Grupos de registros**: uno o más grupos de registros que contienen los datos que desea analizar
+ Función **de IAM de ejecución: función** de IAM con los siguientes permisos:
  + `logs:StartQuery`- Permiso para iniciar consultas de CloudWatch Logs Insights
  + `logs:GetQueryResults`- Permiso para recuperar los resultados de la consulta
  + `logs:DescribeLogGroups`- Permiso para acceder a la información del grupo de registros. Esto solo es necesario para los grupos de registros basados en prefijos para la detección de grupos de registros
+ **Permisos de destino: permisos** de IAM adicionales para el destino elegido:
  + Para los destinos de Amazon S3: `s3:PutObject`
+ **Para el AWS CLI uso de la API**: AWS credenciales configuradas con permisos para llamar a CloudWatch Logs APIs

Para ver ejemplos detallados de políticas de IAM, consulte[Administración de identidades y accesos para Amazon CloudWatch Logs](auth-and-access-control-cwl.md). También debe tenerse en cuenta que solo puede tener 1000 consultas programadas por cuenta.

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

**Para crear una consulta programada (consola)**

1. ¿Abrir la consola CloudWatch de Logs en [https://us-east-1.console.aws.amazon.com/cloudwatch/casa? region=us-east-1 \#LogsV2:Logs-Insights](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights).

1. **En el panel de navegación, selecciona Logs Insights.**

1. Seleccione **Crear consulta programada**.

1. En la sección **de definición de consultas**:

   1. En **Idioma de consulta**, elija el idioma de consulta que desee utilizar en la lista.

   1. Para la **cadena de consulta**, introduzca su consulta de CloudWatch Logs Insights en el cuadro.

   1. Para **los grupos de registros**, seleccione los grupos de registros que desee consultar en la lista.

1. En la sección **de configuración del cronograma**:

   1. En la **expresión Schedule**, configure cuándo se ejecutará la consulta. Elija una de las opciones predefinidas o introduzca una expresión cron personalizada.

   1. **En Efectivo al crearse**, especifique cuándo se activa la programación. Elija comenzar inmediatamente o en una fecha y hora específicas utilizando el YYYY/MM/DD formato.

   1. En **Intervalo de tiempo**, especifique el período retrospectivo para cada ejecución de consulta. Introduzca la duración en minutos que define el tiempo transcurrido desde el momento de ejecución de la consulta.

   1. **En Continuar indefinidamente**, especifique cuándo finaliza la programación. Elija ejecutar indefinidamente o hasta una fecha y hora específicas utilizando YYYY/MM/DD el formato.

1. La consola muestra las tres siguientes ejecuciones de consultas programadas en función de su configuración y muestra las fechas y horas exactas en UTC en las que se ejecutará la consulta.

1. En la sección **Publicar los resultados de la consulta en S3 (opcional**) (si utilizas el destino S3):

   1. Para el **bucket de S3**, selecciona **Esta cuenta** si el bucket de destino está en la misma AWS cuenta, o selecciona **Otra cuenta** si el bucket está en una AWS cuenta diferente e introduce el ID de cuenta de la cuenta propietaria del bucket.

   1. Para el **URI de Amazon S3**, introduzca el bucket y el prefijo de Amazon S3 donde se almacenarán los resultados (por ejemplo,`s3://my-bucket/query-results/`). Si seleccionó **Esta cuenta**, puede elegir **Browse Amazon S3** para navegar y seleccionar una ubicación de Amazon S3 existente.

   1. (Opcional) Para el **ARN de la clave KMS, introduzca el ARN** de una AWS KMS clave administrada por el cliente para cifrar los resultados de la consulta mediante SSE-KMS. La clave debe estar en la misma AWS región que el bucket de Amazon S3 de destino.

1. En la sección **Función de IAM para publicar los resultados de las consultas en Amazon S3**, elija una de las siguientes opciones:

   1. Elija **Crear automáticamente un nuevo rol con los permisos predeterminados** para configurar automáticamente un rol de IAM con los permisos necesarios para que CloudWatch Logs entregue los resultados de las consultas a Amazon S3.

   1. Elija **Utilizar un rol existente** para seleccionar un rol de IAM existente con las políticas necesarias para que CloudWatch Logs entregue los resultados de las consultas a Amazon S3. Utilice el campo de búsqueda para buscar y seleccionar el rol de IAM adecuado de la lista.

1. En la sección **Función de IAM para la ejecución programada de consultas**, elija una de las siguientes opciones:

   1. Seleccione **Crear automáticamente un nuevo rol con los permisos predeterminados** para configurar automáticamente un rol de IAM con los permisos necesarios para que los CloudWatch registros ejecuten las consultas programadas.

   1. Elija **Usar un rol existente para seleccionar un rol** de IAM existente con las políticas necesarias para que los CloudWatch registros ejecuten las consultas programadas. Utilice el campo de búsqueda para buscar y seleccionar el rol de IAM adecuado de la lista.

1. Seleccione **Crear programación** para crear la consulta programada.

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

**Para crear una consulta programada (AWS CLI)**
+ Utilice el `create-scheduled-query` comando para crear una nueva consulta programada:

  ```
  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 crear una consulta programada (API)**
+ Utilice la `CreateScheduledQuery` acción para crear una nueva consulta programada. El siguiente ejemplo crea una consulta programada que se ejecuta 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"
  }
  ```

------

Tras crear la consulta programada, puede verla y gestionarla desde la página de **consultas programadas** y mediante la ListScheduledQueries API, que muestra todas las consultas programadas con sus nombres, fechas de creación, estado de la última ejecución, hora de la última activación y frecuencia de repetición.