Un disparador de tiempo ejecuta automáticamente una función en un momento específico o según una programación recurrente. Esto permite programar tareas de forma flexible y resulta ideal para aplicaciones que requieren tareas periódicas.
Escenarios
Entre los escenarios más comunes para los disparadores de tiempo se incluyen los siguientes:
Procesamiento por lotes de datos programado, como recopilar todos los datos cada hora para generar informes.
Programación de acciones diarias, como enviar cupones a una hora exacta.
Tareas asíncronas desacopladas de la lógica de negocio, como limpiar datos todos los días a medianoche.
Requisitos previos
Paso 1: Crear un disparador de tiempo
Inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, elija .
En la barra de navegación superior, seleccione una región. En la página Functions, haga clic en la función de destino.
En la página de detalles de la función, seleccione la pestaña Trigger y luego haga clic en Create Trigger.
-
En el panel Create Trigger, configure los parámetros y luego haga clic en OK.
Parámetro
Acción
Ejemplo
Trigger Type
Seleccione Time Trigger.
Time Trigger
Name
Introduzca un nombre personalizado para el disparador.
my_trigger
Version or Alias
El valor predeterminado es LATEST. Para crear un disparador para otra versión o alias, primero cambie a esa versión o alias en la esquina superior derecha de la página de detalles de la función. Para obtener más información sobre versiones y alias, consulte Version management y Alias management.
LATEST
Trigger Mode
Seleccione un método de activación según sus necesidades:
Interval: en el cuadro de texto Interval, introduzca un número entero positivo n para ejecutar la función cada n minutos.
Select Custom Time: seleccione una zona horaria y especifique una fecha, un día de la semana y una hora para ejecutar la función en el momento indicado dentro de esa zona horaria.
Custom Settings: en el cuadro de texto Cron Expression, introduzca una expresión cron para ejecutar la función en el momento que define dicha expresión.
Time Interval
Trigger Message
Introduzca parámetros personalizados. Este mensaje del disparador se utiliza como valor de payload en el evento.
El tamaño del mensaje del disparador está limitado a 128 KB, igual que el límite de payload para las invocaciones asíncronas.
awesome-fc
Si tiene requisitos específicos de zona horaria y necesita personalizar la Cron Expression, consulte las siguientes descripciones de expresiones de tiempo.
-
Expresión cron (UTC)
Las expresiones cron se ejecutan en UTC de forma predeterminada, lo cual equivale a 8 horas menos que la hora de Pekín (UTC+8). Por ejemplo, si desea programar una función para que se ejecute diariamente a las 12:00 en la hora de Pekín (UTC+8), la hora equivalente en UTC es 04:00, por lo que puede usar
0 0 4 * * *. -
Expresión cron (UTC+8)
Si su tarea debe ejecutarse en una zona horaria específica, especifíquela mediante CRON_TZ. Por ejemplo, para activar una función a las 04:00 el primer día de cada mes en la zona horaria UTC+8, use
CRON_TZ=Asia/Shanghai 0 0 4 1 * *. Las expresiones de zona horaria varían según la región. Utilice la expresión correspondiente a su región.NotaSi su zona horaria aplica el horario de verano (DST), las tareas podrían ejecutarse dos veces u omitirse durante la transición entre el horario de verano y el horario estándar. Se recomienda programar las tareas fuera de estos periodos de transición.
Una vez creado el disparador, este aparece en la lista Trigger Name. Para modificar o eliminar el disparador, consulte Manage triggers.
Paso 2: Configurar los parámetros de entrada de la función
En la pestaña Code de la página de detalles de la función, haga clic en el icono
junto a Test Function y seleccione Configure Test Parameters en la lista desplegable.-
En el panel Configure Test Parameters, seleccione Create New Test Event o Modify Existing Test Event. Introduzca un nombre de evento y el contenido del evento, y luego haga clic en OK.
Un disparador de tiempo utiliza el siguiente formato de evento para activar la función.
{ "triggerTime":"2023-12-26T07:49:00Z", "triggerName":"timer-trigger", "payload":"awesome-fc" }Parámetro
Tipo
Valor de ejemplo
Descripción
triggerTime
String
2023-12-26T07:49:00Z
La hora a la que se activó la función.
triggerName
String
timer-trigger
El nombre del disparador de tiempo.
payload
String
awesome-fc
El parámetro personalizado que introdujo en la configuración del disparador. Corresponde al valor de Trigger Message.
Paso 3: Escribir y probar el código de la función
Después de crear el disparador de tiempo, escriba y pruebe el código de la función para comprobar que funciona correctamente. El disparador de tiempo ejecuta automáticamente la función en el momento especificado.
-
En la página de detalles de la función, dentro de la pestaña Code, escriba el código en el editor y luego haga clic en Deploy.
Este tema utiliza código Python como ejemplo. A continuación se muestra el código de muestra.
import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the JSON. evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payload -
Haga clic en Test Function.
Una vez finalizada la ejecución, consulte el resultado encima de la pestaña Code.
Referencias
Si el disparador de tiempo configurado no logra ejecutar la función, compruebe primero el método de activación y la configuración de tiempo correspondiente. Si estableció una Cron Expression personalizada, tenga en cuenta que utiliza UTC de forma predeterminada. Para conocer los métodos de solución de problemas, consulte What do I do if a trigger fails to execute a function?.