Programa una Cloud Function

En este instructivo, se muestra cómo activar una función de Cloud Functions mediante Cloud Scheduler y Pub/Sub. Poder programar la ejecución de una Cloud Function es un caso de uso común para Cloud Scheduler. Realizarás lo siguiente:

  • Cree una función de Cloud Functions que se suscriba a un tema Pub/Sub.
  • Crear un trabajo de Cloud Scheduler que publique un mensaje en el tema de Pub/Sub
  • Ejecutar el trabajo de Cloud Scheduler
  • Verifica que el trabajo de Cloud Scheduler haya activado la Cloud Function.

Antes de comenzar

En este instructivo, se supone que ya revisaste la Guía de inicio rápido de Cloud Scheduler. Como resultado, dispones de las siguientes herramientas y recursos:

  • Un proyecto de Google Cloud con facturación habilitada.

  • La API de Cloud Scheduler y la API de Pub/Sub están habilitadas en el proyecto. Debes habilitar la API de Cloud Functions durante el instructivo.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

  • Cloud Functions
  • Pub/Sub
  • Cloud Scheduler

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Crea una Cloud Function con un activador

  1. En la consola de Google Cloud, ve a la página Cloud Functions.

    Ir a Cloud Functions

  2. Haz clic en Habilitar API si se te solicita.

  3. Haz clic en Crear función. Si aparece un mensaje que te solicita que habilites las APIs, haz clic en Habilitar para activarlas.

  4. En la sección Aspectos básicos, selecciona el entorno de 2a gen., ingresa un nombre para la función y selecciona una región.

  5. En la sección Activador, en Tipo de activador, selecciona Cloud Pub/Sub y, luego, haz clic en Más opciones. Se abrirá el panel Activador de Eventarc. Si se te solicita Habilitar las APIs obligatorias, haz clic en Habilitar.

  6. En el panel Activador de Eventarc, asegúrate de que los primeros campos se completen de la siguiente manera o complétalos si es necesario:

    • Tipo de activador: Fuentes de Google
    • Proveedor del evento: Cloud Pub/Sub
    • Evento: google.cloud.pubsub.topic.v1.messagePublished
  7. En el campo Selecciona un tema de Cloud Pub/Sub, selecciona un tema existente o haz clic en Crear un tema para crear uno nuevo. Tu función se suscribe a este tema. Anota el nombre del tema. Lo necesitarás más adelante.

    • Si se te solicita, haz clic en Otorgar a fin de permitir que el servicio de Pub/Sub cree los tokens de identidad que necesita para invocar la función.
  8. En el campo Cuenta de servicio, haz clic en Crear cuenta de servicio nueva.

    1. Ingresa un nombre para la cuenta de servicio y haz clic en Crear. Eventarc usa esta cuenta de servicio para invocar la función con un token de identidad desde el servicio de Pub/Sub.

    2. En la sección Otorga a esta cuenta de servicio acceso al proyecto, selecciona la función Invocador de Cloud Run. Esto le otorga a la cuenta de servicio la capacidad de invocar tu función de 2a generación.

    3. Haz clic en Listo.

  9. Deja la opción Volver a intentar en caso de error sin seleccionar. Haz clic en Guardar activador.

  10. Expande la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad y selecciona la pestaña Entorno de ejecución.

  11. En Cuenta de servicio del entorno de ejecución, en el campo Cuenta de servicio, haz clic en Crear. El flujo de creación de cuentas de servicio se abrirá en una pestaña nueva. Esta cuenta de servicio es la identidad que tiene la Cloud Function cuando se ejecuta.

    1. Ingresa un nombre para la cuenta de servicio.
    2. Haz clic en Crear y continuar.
    3. Haz clic en Listo.

    Se te redireccionará a la página Cuentas de servicio de la consola de Google Cloud. Puedes cerrar esta pestaña.

  12. Regresa al campo Cuenta de servicio en la página de creación de la función, haz clic en Actualizar y, luego, selecciona la cuenta de servicio que acabas de crear.

  13. Haz clic en Siguiente. Si se te solicita habilitar las APIs necesarias, haz clic en Habilitar.

  14. No modifiques el idioma predeterminado ni el código de muestra. El código no usa ningún servicio en la nube y no necesita permisos adicionales habilitados. Haz clic en Implementar.

Crea un trabajo de Cloud Scheduler

  1. En la consola de Google Cloud, ve a la página Cloud Scheduler.

    Ir a Cloud Scheduler

  2. Haz clic en Create job.

  3. Ingresa un nombre para el trabajo, selecciona una región en la que se ejecutará y, si lo deseas, agrega una descripción.

  4. Especifica la frecuencia de tu trabajo usando el formato unix-cron.

    30 16 * * 7
    

    Consulta Configura trabajo cron cron para obtener más información.

  5. Selecciona tu zona horaria.

  6. Haz clic en Continuar.

  7. En la sección Configura la ejecución, selecciona Pub/Sub como el tipo de destino.

  8. Selecciona tu tema de Pub/Sub.

  9. Agrega una cadena breve de Message para que se envíe a tu destino.

  10. Haz clic en Crear.

Ahora tienes un trabajo cron que envía un mensaje a tu tema de Pub/Sub a las 16:30 los domingos. Tu Cloud Function está suscrita a ese tema.

Ejecuta tu trabajo

Ahora puedes ejecutar el trabajo que creaste.

  1. En la consola de Google Cloud, ve a la página de Cloud Scheduler.

    Ir a Cloud Scheduler

  2. Selecciona el trabajo que creaste.

  3. Haz clic en Forzar ejecución.

    El primer trabajo creado en un proyecto puede tardar unos minutos en ejecutarse cuando se invoca por primera vez debido a la configuración necesaria.

  4. Observa la columna Estado de la última ejecución. Una vez ejecutado el trabajo, esta columna debería decir “Finalizado”.

¡Felicitaciones! Acabas de usar la consola para ver los resultados de la ejecución de un trabajo cron que envía un mensaje a Pub/Sub. A continuación, aprenderás cómo verificar que tu Cloud Function se haya ejecutado realmente.

Verifica los resultados en Cloud Functions

Sigue estos pasos para verificar que tu trabajo cron active de forma correcta tu Cloud Function:

  1. En la consola de Google Cloud, ve a la página Cloud Functions.

    Ir a Cloud Functions

  2. Haz clic en el nombre de la función.

  3. Se abrirá la página Detalles de la función. En el gráfico Invocations/Second, se muestra tu primera invocación de la función. Para ver los detalles de la invocación, haz clic en Registros.

¡Felicitaciones! Se ejecutó tu función.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en este instructivo, sigue estos pasos:

Borra el trabajo de Cloud Scheduler

  1. En la consola de Google Cloud, ve a la página Cloud Scheduler.

    Ir al Programador

  2. Selecciona la casilla de verificación que se encuentra junto a tu trabajo.

  3. Haz clic en Borrar y confirma la eliminación.

Borra el tema de Pub/Sub

  1. En la consola de Google Cloud, ve a la página Cloud Pub/Sub.

    Ir a Pub/Sub

  2. Selecciona la casilla de verificación junto a tu tema.

  3. Haz clic en Borrar y confirma la eliminación.

Borra la función de Cloud Functions

  1. En la consola de Google Cloud, ve a la página Cloud Functions.

    Ir a Cloud Functions

  2. Selecciona la casilla de verificación junto a tu función.

  3. Haz clic en Borrar y confirma la eliminación.

Borra las cuentas de servicio

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona la casilla de verificación junto a las cuentas de servicio que creaste.

  3. Haz clic en Borrar y confirma la eliminación.

Inhabilita las APIs

Si habilitaste alguna API en el transcurso de este instructivo (como las API de Eventarc, Cloud Functions o Pub/Sub), inhabilítalas. Inhabilitar las APIs afecta el acceso a la API del proyecto, por lo que no debes inhabilitar las APIs si otros recursos de tu proyecto las usan.

  1. En la consola de Google Cloud, ve a la página API y servicios.

    Ir a APIs y servicios.

  2. Haz clic en la API que deseas inhabilitar. Aparecerá una página en la que se describe la API.

  3. Haz clic en Inhabilitar API.

Borra el proyecto

Si creaste un proyecto solo para este instructivo, puedes borrarlo.

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.