Programación de Cron Job en Google Cloud

Python a menudo se denomina lenguaje de unión porque es una herramienta poderosa para combinar fácilmente múltiples sistemas diferentes. Parte de esto se debe a que Python tiene una excelente compatibilidad con la biblioteca del cliente, lo que le permite interactuar con muchas API, productos y servicios desde la comodidad de Python. Pero no solo termina con la nube. Python es útil para combinar casi cualquier cosa con cualquier otra cosa.

Un Cron Job  es un comando de Linux que se utiliza para programar tareas que se ejecutarán en el servidor. Se usan más comúnmente en la automatización. En este artículo, veremos los pasos para programar un trabajo cron en python en el almacenamiento en la nube de Google. 

Como ejemplo, escribiremos un script de python que obtiene las principales historias de la API de Hacker News y luego itera sobre cada historia. Si alguno de sus títulos coincide con serverless, le enviará un correo electrónico con los enlaces. Usaremos la biblioteca de requests para realizar una solicitud HTTP a la URL de la API, que está alojada en Firebase, un producto de Google Cloud.

El primer paso sería escribir un script de Python,

Python3

from request import get
 
api_url = 'https://hacker-news.firbaseio.com/v0/'
 
top_stories_url = api_url + 'topstories.json'
 
item_url = api_url + 'item/{}.json'

Luego, si alguna de las historias coincide, usaremos un código personalizado para enviar un correo electrónico formateado con todas las historias «sin servidor». Podemos poner todo esto en una sola función de Python como se muestra a continuación:

Python3

# sudo code
 
from utils import send_email
 
def check_serverless_stories(request):
  top_stories = request.get(top_stories_url).json
  serverless_stories = []
   
  ...
   
  send_email(serverless_stories)
   
   
if serverless_stories:
  send_email(serverless_stories)

 
 Luego podemos implementar esta aplicación en Cloud Functions usando los siguientes comandos:

$ gcloud functions deploy check_serverless_stories \
  --runtime python38
  --trigger-http

Después de la implementación, obtenemos una URL pública para nuestra función. Entonces, cada vez que visitamos esta URL, nos enviará un correo electrónico con cualquier artículo nuevo en la página principal de Hackernews.com.

Y el último paso es ejecutarlo en un horario. Para ello, usamos Cloud Scheduler para crear un nuevo trabajo, que se ejecuta una vez al día.

Los trabajos cron se programan a intervalos recurrentes especificados mediante el formato cron de Unix. Puede definir la programación para que su trabajo se ejecute varias veces al día o se ejecute en días y meses específicos.

 Programaremos nuestro trabajo para que se ejecute una vez al día a la medianoche. Usaremos el comando gcloud Scheduler Jobs Create para crear un trabajo que llame a nuestra función en la programación, como se muestra a continuación:

$ gcloud scheduler jobs create http email_job \
  --schedule = "0 0 * * *" \
  --uri = https://YOUR-REGION-project.cloudfunctions.net/check_serverless_stories

Podemos usar la lista de trabajos del programador de gcloud para confirmar que nuestro trabajo se creó con el siguiente comando: 

$ gcloud scheduler jobs list

Y podemos usar la ejecución de trabajos del programador de gcloud para ejecutarlo una vez, independientemente de la programación, como se muestra a continuación:

$ gcloud scheduler jobs run email_job

Esto le permite recibir cualquier artículo sin servidor directamente en su bandeja de entrada todos los días sin que tenga que hacer nada.

Publicación traducida automáticamente

Artículo escrito por ddeevviissaavviittaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *