Funciones de programación


Si desea programar funciones para que se ejecuten en momentos específicos, use el controlador onSchedule para crear un tema de Pub/Sub que use Cloud Scheduler para activar eventos sobre ese tema.

Antes de que empieces

Para utilizar esta solución en su proyecto de Firebase, su proyecto debe estar en el plan de precios de Blaze. Si aún no está en el plan Blaze, actualice su plan de precios .

Aunque se requiere facturación, puede esperar que el costo general sea manejable, ya que cada trabajo de Cloud Scheduler cuesta $0,10 (USD) por mes y hay una asignación de tres trabajos por cuenta de Google, sin cargo. Utilice la calculadora de precios de Blaze para generar una estimación de costos basada en su uso proyectado.

Las API de Pub/Sub y Cloud Scheduler deben estar habilitadas para su proyecto. Estos ya deberían estar habilitados para la mayoría de los proyectos de Firebase; Puedes verificarlo en la consola de Google Cloud Platform .

Escribir una función programada

En Cloud Functions para Firebase, la lógica de programación reside en su código de funciones, sin requisitos especiales de tiempo de implementación. Para crear una función programada, use functions.pubsub.schedule('your schedule').onRun((context)) . Por ejemplo, para ejecutar una función cada cinco minutos con la sintaxis cron.yaml de App Engine , haga algo como esto:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

Tanto la sintaxis de Unix Crontab como la de App Engine son compatibles con Cloud Scheduler. Por ejemplo, para usar Crontab para seleccionar una zona horaria específica en la que ejecutar una función programada, haga algo como esto:

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
  return null;
});

El valor de timeZone debe ser un nombre de zona horaria de la base de datos tz . Consulte la referencia de Cloud Scheduler para obtener más información sobre las propiedades admitidas.

Implementar una función programada

Cuando implementa una función programada, el trabajo del programador relacionado y el tema de publicación/sub se crean automáticamente. Firebase CLI repite el nombre del tema y puedes ver el trabajo y el tema en GCP Console . El tema se nombra según la siguiente convención:

firebase-scheduled- function_name - region

Por ejemplo:

firebase-scheduled-scheduledFunctionCrontab-us-east1.