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.
Comprender los conceptos de las consultas programadas
Antes de crear consultas programadas, comprenda estos conceptos clave que afectan a la forma en que se ejecutan las consultas y al lugar en el que se entregan los resultados.
Separación de funciones de IAM
Las consultas programadas requieren dos funciones de IAM independientes: una para ejecutar las consultas y otra para entregar los resultados a destinos como los buckets de Amazon S3, los buses de EventBridge eventos de Amazon o las tablas de búsqueda. Entender por qué existe esta separación le ayuda a configurar los permisos correctamente y a aprovechar las ventajas operativas y de seguridad que proporciona.
La arquitectura de dos funciones divide las responsabilidades entre el acceso a los datos y la entrega de datos. La función de ejecución de consultas accede a los datos de registro y ejecuta las consultas, mientras que la función de entrega en destino escribe los resultados en el destino elegido. Esta separación sigue el principio de privilegios mínimos: cada rol solo tiene los permisos que necesita para su función específica.
- Función de ejecución de consultas
-
Permite a CloudWatch Logs ejecutar consultas de CloudWatch Logs Insights en su nombre. Este rol necesita permisos para acceder a tus grupos de registros y ejecutar consultas, pero no necesita acceder a los recursos de destino. Permisos necesarios:
-
logs:StartQuery -
logs:StopQuery -
logs:GetQueryResults -
logs:DescribeLogGroups -
logs:Unmasksi es necesario desenmascarar datos
Para grupos de KMS-encrypted registros:
kms:Decryptykms:DescribeKeypermisos para la clave de KMS utilizada para cifrar los grupos de registros. También es necesario agregar estos permisos.Requisito de relación de confianza: la función de ejecución de consultas debe incluir una política de confianza que permita al servicio CloudWatch Logs (
logs.amazonaws.com) asumir la función. Sin esta relación de confianza, las consultas programadas fallarán y producirán errores de permiso.Ejemplo de política de confianza para la función de ejecución de consultas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Ejemplo de política de permisos para la función de ejecución de consultas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "logs:DescribeLogGroups" ], "Resource": "*" } ] } -
- Función de entrega en destino
-
Permite que CloudWatch Logs entregue los resultados de las consultas al destino elegido. Este rol solo necesita permisos para el servicio de destino específico, siguiendo el principio de privilegios mínimos. Los permisos necesarios varían según el tipo de destino.
Requisito de relación de confianza: la función de entrega en destino también debe incluir una política de confianza que permita al servicio CloudWatch Logs (
logs.amazonaws.com) asumir la función.Ejemplo de política de permisos para la función de entrega en destino de S3:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::your-scheduled-query-results-bucket/*" } ] }Ejemplo de política de permisos para una función de entrega en destino en una tabla de búsqueda:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLookupTable", "logs:UpdateLookupTable", "logs:GetQueryResults" ], "Resource": "*" } ] }
Esta separación proporciona beneficios prácticos para sus operaciones. Desde el punto de vista de la seguridad, si necesita cambiar el lugar donde se entregan los resultados, solo debe modificar la función de entrega en destino sin cambiar los permisos de ejecución de las consultas. Para el cumplimiento y la auditoría, puede realizar un seguimiento claro de qué rol accede a los datos de registro confidenciales y qué rol escribe en sistemas externos. Esto facilita la demostración de que su infraestructura de análisis de registros sigue las prácticas recomendadas de seguridad.
Cross-region y el uso entre cuentas
Se crea una consulta programada en una región específica y se ejecuta en esa región. Sin embargo, puede consultar los grupos de registros y ofrecer resultados en todas las regiones y cuentas. Debes configurar una o más AWS cuentas como cuentas de supervisión y vincularlas con varias cuentas de origen. Una cuenta de monitoreo es una AWS cuenta central que puede ver e interactuar con los datos de observabilidad generados a partir de las cuentas de origen. Una cuenta de origen es una AWS cuenta individual que genera datos de observabilidad para los recursos que residen en ella. Las cuentas de origen comparten sus datos de observabilidad con la cuenta de supervisión. Por lo tanto, puede configurar las consultas programadas desde la cuenta de supervisión utilizando los grupos de registro de todas las cuentas vinculadas.
- Consulta de grupos de registro interregionales
-
La consulta programada puede acceder a los grupos de registro de cualquier región. Especifique los grupos de registro utilizando su formato ARN completo:
arn:aws:logs:region:account-id:log-group:log-group-name. El rol de ejecución de consultas necesitalogs:StartQueryy tienelogs:GetQueryResultspermisos para los grupos de registros en todas las regiones de destino.
importante
Al consultar grupos de registros o entregar resultados en distintas regiones, los datos de registro cruzan las fronteras regionales. Considere lo siguiente:
-
Requisitos de residencia de datos: asegúrese de que la transferencia de datos entre regiones cumpla con las políticas de gobierno de datos y los requisitos reglamentarios de su organización
-
Costos de transferencia de Cross-region datos: la transferencia de datos conlleva cargos adicionales
-
Latencia de red: las consultas que acceden a grupos de registro en regiones distantes pueden experimentar una latencia más alta
Para obtener un rendimiento y una rentabilidad óptimos, cree consultas programadas en la misma región que sus grupos de registros principales.
Enfoque alternativo: utilice la centralización de los CloudWatch registros para replicar los datos de registro de varias cuentas y regiones en una cuenta de supervisión central. Esto le permite crear consultas programadas en una sola región para acceder a todos sus registros centralizados, lo que evita las consultas entre regiones y simplifica la administración de los permisos de IAM.
Programe las expresiones y la gestión de las zonas horarias
La programación que defina determina cuándo se ejecuta la consulta y con qué frecuencia. La elección de la expresión de programación correcta afecta a la hora de recibir los resultados y a la cantidad de datos que se consultan. Comprender los tipos de expresiones le ayuda a elegir entre simplicidad y precisión.
Las expresiones de Cron proporcionan un control preciso sobre el tiempo, lo que permite especificar las horas, los días de la semana o los días del mes exactos. Usa expresiones cron cuando necesites que las consultas se ejecuten en un horario laboral específico o se ajusten a los cronogramas operativos. En la consola también puedes programar consultas mediante sencillas opciones de calendario.
- Expresiones cron
-
Ejecute consultas en momentos específicos. Formato:
cron(minute hour day-of-month month day-of-week year). Ejemplos:-
cron(0 9 * * ? *)- Todos los días a las 9:00 a.m. UTC -
cron(0 18 ? * MON-FRI *)- De lunes a viernes a las 18:00 UTC -
cron(0 0 1 * ? *)- El primer día de cada mes a medianoche (hora peninsular española) -
cron(0 12 ? * SUN *)- Todos los domingos al mediodía (UTC) -
cron(30 8 1 1 ? *)- 1 de enero a las 8:30 a. m. UTC
-
Todas las consultas programadas se ejecutan en UTC, independientemente de tu zona horaria local o de dónde se encuentren tus AWS recursos. Esto es especialmente importante a la hora de programar las consultas para el horario laboral o para realizar análisis en función del tiempo. Por ejemplo, si tu empresa opera en el horario del este de EE. UU. y quieres recibir un informe diario a las 9 a. m. ET, debes tener en cuenta la diferencia UTC (a las 14:00 UTC durante el horario de verano, a las 13:00 UTC en caso contrario). Planifica tus expresiones de programación teniendo en cuenta el horario UTC para asegurarte de que las consultas se ejecuten a la hora prevista.
Cómo elegir un idioma de consulta
Las consultas programadas admiten tres lenguajes de consulta diferentes, y tu elección afecta tanto a la forma en que escribes las consultas como a la facilidad con la que tu equipo puede mantenerlas. El idioma correcto depende de tus requisitos de análisis y de las habilidades actuales de tu equipo.
Si se dedica principalmente a filtrar y agregar datos de registro, el lenguaje de consulta de CloudWatch Logs Insights ofrece la sintaxis más sencilla. En el caso de transformaciones de datos complejas en las que es necesario remodelar o enriquecer los datos mediante varios pasos, el enfoque de canalización de PPL facilita el seguimiento de la lógica. Cuando necesite realizar combinaciones o agregaciones complejas similares a las operaciones de bases de datos, SQL proporciona una sintaxis familiar que los equipos con experiencia en bases de datos pueden adoptar rápidamente.
- CloudWatch Lenguaje de consulta Logs Insights (CWLI)
-
Purpose-built para el análisis de registros con una sintaxis intuitiva. Ideal para:
-
Text-based análisis y filtrado de registros
-
Time-series agregaciones y estadísticas
-
Equipos que son nuevos en el análisis de registros
-
- OpenSearch Lenguaje de procesamiento canalizado (PPL)
-
Pipeline-based lenguaje de consulta con potentes capacidades de transformación de datos. Ideal para:
-
Transformaciones y enriquecimiento de datos complejos
-
Multi-step flujos de trabajo de procesamiento de datos
-
Equipos familiarizados con el procesamiento basado en canalizaciones
-
- OpenSearch Lenguaje de consulta estructurado de servicios (SQL)
-
Sintaxis SQL estándar para consultas conocidas al estilo de una base de datos. Ideal para:
-
Uniones y agregaciones complejas
-
Inteligencia empresarial e informes
-
Equipos con una sólida experiencia en SQL
-
Selección de destinos y casos de uso
El lugar donde envías los resultados de las consultas determina lo que puedes hacer con ellos. Esta elección da forma a todo su flujo de trabajo posterior, ya sea que esté creando análisis a largo plazo, activando respuestas automatizadas o ambas cosas. Comprender los puntos fuertes de cada tipo de destino le ayuda a diseñar la arquitectura adecuada para su caso de uso.
Los destinos de Amazon S3 están optimizados para el almacenamiento y el procesamiento por lotes. Si necesita conservar los resultados de las consultas durante meses o años, analizar las tendencias a lo largo del tiempo o introducir datos en plataformas de análisis, Amazon S3 proporciona un almacenamiento rentable con retención ilimitada. EventBridge los destinos están optimizados para la automatización en tiempo real. Cuando los resultados de las consultas deben desencadenar acciones inmediatas (como enviar alertas, iniciar flujos de trabajo o actualizar sistemas), los resultados se obtienen EventBridge en forma de eventos a los que las aplicaciones pueden responder al instante. De forma predeterminada, todos los eventos de finalización de consultas se envían automáticamente como eventos al bus de eventos predeterminado, lo que permite la integración con los sistemas de procesamiento posteriores, las funciones de Lambda u otras arquitecturas basadas en eventos. Los resultados solo se publican en los destinos cuando la consulta se ejecuta correctamente. Los destinos de las tablas de búsqueda están optimizados para mantener actualizados los datos de referencia. El destino de una tabla de consulta rellena o actualiza automáticamente la tabla de consulta especificada con los resultados de la consulta en cada ejecución programada, de modo que otras consultas pueden hacer referencia a los datos más recientes con el lookup comando.
- Destinos de Amazon S3
-
Almacene los resultados de las consultas como archivos JSON para retenerlos a largo plazo y procesarlos por lotes. Ideal para:
-
Análisis histórico y archivado de datos
-
Integración con lagos de datos y plataformas de análisis
-
Requisitos de cumplimiento y auditoría
-
Cost-effective almacenamiento de grandes conjuntos de resultados
-
- EventBridge destinos
-
Envíe los resultados de las consultas como eventos para su procesamiento y automatización en tiempo real. Puedes recuperar los resultados de las consultas utilizando el ID de consulta que se envió en el evento durante un máximo de 30 días, ya que almacenamos los resultados durante 30 días. Ideal para:
-
Activar respuestas automatizadas a los resultados de las consultas
-
Integración con flujos de trabajo sin servidor y funciones de Lambda
-
Real-time sistemas de alertas y notificaciones
-
Event-driven arquitecturas y microservicios
-
- Destinos de tablas de búsqueda
-
Cree o actualice automáticamente una tabla de consulta con los resultados de las consultas en cada ejecución programada. Cada actualización reemplaza por completo el contenido de la tabla. Ideal para:
-
Mantener actualizados los datos de referencia del
lookupcomando en las consultas de registro -
Mantener las listas de personas permitidas, las listas de denegación o los inventarios de entidades derivados de los datos de registro
-
Enriquecer las consultas con resúmenes de actividades recientes, como listas de usuarios o recursos activos
-
Formato y estructura de los resultados de las consultas
Para los destinos de Amazon S3: los resultados de las consultas se entregan en formato JSON con la misma estructura que la respuesta de la GetQueryResults API. Para Amazon, EventBridge entender el formato de los resultados de las consultas programadas le ayuda a diseñar flujos de trabajo posteriores de procesamiento e integración.
Los resultados de las consultas se entregan en formato JSON con la siguiente estructura:
{ "version": "0", "id": "be72061b-eca2-e068-a7e1-83e01d6fe807", "detail-type": "Scheduled Query Completed", "source": "aws.logs", "account": "123456789012", "time": "2025-11-18T11:31:48Z", "region": "us-east-1", "resources": [ "arn:aws:logs:us-east-1:123456789012:scheduled-query:477b4380-b098-474e-9c5e-e10a8cc2e6e7" ], "detail": { "queryId": "2038fd57-ab4f-4018-bb2f-61d363f4a004", "queryString": "fields @timestamp, @message, @logStream, @log\n| sort @timestamp desc\n| limit 10000", "logGroupIdentifiers": [ "/aws/lambda/my-function" ], "status": "Complete", "startTime": 1763465460, "statistics": { "recordsMatched": 0, "recordsScanned": 0, "estimatedRecordsSkipped": 0, "bytesScanned": 0, "estimatedBytesSkipped": 0, "logGroupsScanned": 1 } } }
Los elementos clave incluyen:
-
statistics- Las métricas de rendimiento de las consultas incluyen los registros cotejados, los escaneados, los bytes procesados y la estimación de los datos omitidos -
startTime- Cuándo se inició la ejecución de la consulta (marca de tiempo de Unix) -
queryString- La consulta real que se ejecutó -
queryId- El identificador de consulta de la consulta con el que se pueden recuperar los resultados -
logGroupIdentifiers- Lista de grupos de registros consultados -
status- Estado de ejecución de la consulta (completa, fallida, etc.)