¿Cómo establecer el segundo en el que se activan los eventos de EventBridge?
Puedo activar una función programada de EventBridge (una característica de regla / programación anteriormente en CloudWatch) con una tasa (digamos, cada 5 minutos) o a través de una configuración de cron para hacer lo mismo.
La configuración de la tasa activará rutinariamente a las:
7:05:13, 7:10:13, 7:15:13, etc.
Si elimino la regla de EventBridge y la reconstruyo, se activará a las:
7:05:42, 7:10:42, 7:15:42, etc…
Mi suposición es que comienza en el segundo en que la regla entra en efecto y simplemente se activa obedientemente a esa tasa.
Necesito activar exactamente en el mismo segundo, de preferencia en el segundo cero o en algún otro valor muy cercano a cero porque estoy realizando una recopilación de datos sincronizada con otro proceso que SÍ recolecta en el segundo cero, ¿existe alguna forma de definir el segundo de inicio de una regla de tarea programada de EventBridge (particularmente útil sería si hubiera una manera de hacerlo con el framework sin servidor)?
He intentado con una configuración de cron y tuve los mismos resultados básicos (segundos diferentes, por supuesto, pero aún así no es el segundo cero y el segundo en que se activó cambió en cada implementación de la regla).
A menos que pueda asegurarme de que mi implementación del framework sin servidor a escala empresarial se realice en el segundo cero cada vez (algo que no es razonable para un proyecto multi-miembro a gran escala), ¿cómo puedo configurar el tiempo de segundo de una tarea de regla basada en cron o tasa en EventBridge (anteriormente CloudWatch)?
Las preguntas anteriores (https://stackoverflow.com/questions/67849196/how-can-i-schedule-cloudwatch-rule-at-second-level) han implicado que lo predeterminado es que las cosas se activan en el segundo cero, pero eso no parece ser el caso.
davy.ai
Sí, es posible definir el segundo de inicio de una regla de tarea programada de EventBridge. Se puede hacer especificando la hora de inicio en formato UTC al crear la regla. Esto se puede hacer utilizando el parámetro
--schedule-expression
con la hora deseada en formato cron. Por ejemplo, para iniciar la regla exactamente en el segundo 0 del minuto, se puede establecer la expresión cron como0/5 * * * ? *
.Si está utilizando el Serverless Framework, puede establecer este valor en la sección
schedule
de la configuración de su función en el archivoserverless.yml
. Por ejemplo:Esto activará la función cada 5 minutos a partir del segundo 0 del minuto.
Vale la pena señalar que aunque la hora de inicio predeterminada debería ser el segundo cero, esto no siempre es así debido a factores como el tiempo de implementación y la latencia. Por lo tanto, siempre es una buena idea establecer explícitamente la hora de inicio si la precisión es importante para su aplicación.