https://www.xertica.com/devblog/serverless-con-google-cloud-functions
Serverless es un término que últimamente escuchamos con mayor frecuencia dada su alta popularidad y adopción en el mercado. A partir de este concepto, es posible pensar en la idea de liberarnos de tareas con las que no siempre queremos tratar como aprovisionamiento y el manejo de servidores de aplicaciones y sistemas operativos, entre otras, lo cual nos permite seguir enfocados en implementaciones.
Dentro de la amplia oferta de opciones y servicios serverless, la que maneja las funciones que responden ante eventos es por lejos la más popular: despliega una función que es muy buena haciendo una tarea puntual sin montar servidores y paga por ella solo cuando haya estado en uso.
gcp-history-serverless-2x
Con Google Cloud Platform puedes desplegar este tipo de funciones mediante Cloud Functions: éstas se ejecutarán en entornos controlados de NodeJS (6 y 8) y Python (3.7) donde responderán a eventos predefinidos o llamadas vía HTTP.
¿Quieres asegurarte de que los contenidos que se están almacenando en Cloud Storage no tienen información sensible? En lugar de poner a trabajar un servidor con tus métodos e implementar tu estrategia de supervisión de creación y modificación de archivos desde cero, es mejor tener a la mano esta función:
dlp_file_detection_part.py 440 Bytes GitLab logo
1
2
3
4
5
6
7
8
9
bucket = storage_client.get_bucket(data[‘bucket’])
blob = bucket.get_blob(data[‘name’])
item = {‘byte_item’: {‘type’: None, ‘data’: blob.download_as_string()}}
<h1>llamado a la API.</h1>response = dlp_client.inspect_content(parent, inspect_config, item)
Resuelve las dependencias de Data Loss Prevention API y usa los triggers predefinidos. Vuélvete más ágil.
deploy_function.sh 161 Bytes GitLab logo
1
2
3
gcloud beta functions deploy dlp_file_detection --runtime python37
–trigger-resource EL_NOMBRE_DE_TU_BUCKET
–trigger-event google.storage.object.finalize
¿Tienes un proyecto de IoT en el cual has integrado Pub/Sub para tratar diferenciadamente las métricas y necesitas procesar cada uno de los mensajes que envían los dispositivos? Prueba con una arquitectura similar e integra Cloud Functions en alguna etapa y conecta múltiples servicios.
arquiFunctionsIoT
La idea de la función es que te permita desplegar lógicas lo más atómicas posibles (mientras menos dependencias y menos tareas resuelva es mejor) y elijas la cantidad de memoria adecuada. Recuerda que solamente pagas por los recursos que usaste y el tiempo que haya durado la ejecución. Encuentra el balance entre tu regla de negocio, tiempo de procesamiento y costo.
Tu ingenio y tu entusiasmo te permitirán crear, aun así, no abuses. Las funciones son un mecanismo ideal para resolver desafíos intermedios o para conectar sistemas y procesos donde estas interacciones no son críticas, no obstante, la decisión depende de tu buen juicio.
Aquí te dejo el proyecto completo para que despliegues tu propia función que supervise los contenidos que subes a Cloud Storage.
Enlaces de interés:
https://cloud.google.com/functions/
https://cloud.google.com/functions/getting-started/
https://cloud.google.com/functions/docs/
https://cloud.google.com/functions/docs/concepts/python-runtime
https://cloud.google.com/functions/pricing-summary/