1. Descripción general
Con Cloud Functions, puede escribir funciones simples de un solo propósito vinculadas a eventos emitidos desde su infraestructura y servicios de nube. Tu Cloud Function se activa cuando ocurre un evento que se está supervisando. El código se ejecuta en un entorno completamente administrado, sin necesidad de aprovisionar infraestructura ni preocuparse por administrar servidores.
Actualmente, las funciones de Cloud Functions se pueden escribir en JavaScript, Python o Go. En el caso de JavaScript, se ejecutan en un entorno de Node.js en Google Cloud. Puedes ejecutar tu Cloud Function en cualquier entorno de ejecución estándar de Node.js, lo que simplifica la portabilidad y las pruebas locales.
Conecta y extiende los servicios de Cloud
Cloud Functions proporciona una capa conectora de lógica que le permite escribir código para conectar y extender sus servicios en la nube. Detecta eventos como la carga de un archivo en Cloud Storage, un cambio de registro o un mensaje entrante en un tema de Cloud Pub/Sub, y responde a ellos. Cloud Functions amplía los servicios de nube existentes y le permite abordar una mayor cantidad de casos de uso con una lógica de programación arbitraria. Cloud Functions tiene acceso a las credenciales de la cuenta de servicio de Google, por lo que se autentica sin problemas con la mayoría de los servicios de Google Cloud Platform, como Datastore, Cloud Spanner, la API de Cloud Translation y la API de Cloud Vision, entre otros.
Eventos y activadores
Los eventos de la nube ocurren en tu entorno de nube.Pueden ser cambios en los datos de una base de datos, la adición de archivos a un sistema de almacenamiento o la creación de una nueva instancia de máquina virtual.
Los eventos ocurren sin importar si decides responder a ellos o no. Las respuestas a los eventos se crean mediante un activador. que es una declaración de tu interés en un evento o conjunto de eventos determinado. Cuando vincula una función con un activador, puede capturar eventos y reaccionar a ellos. Para obtener más información sobre la creación de activadores y cómo asociarlos con tus funciones, consulta Eventos y activadores.
Sin servidores
Cloud Functions te quita la carga de administrar servidores, configurar software, actualizar frameworks y aplicar parches en el sistema operativo. Google administra el software y la infraestructura en su totalidad, por lo que solo debes agregar el código. Además, el aprovisionamiento de recursos se produce automáticamente en respuesta a los eventos. Esto significa que una función puede pasar de tener unas cuantas invocaciones al día a tener muchos millones sin que usted tenga que hacer nada.
Casos prácticos
Las cargas de trabajo asíncronas como los procesos ETL básicos o las automatizaciones en la nube (como la activación de la compilación de aplicaciones) ya no necesitan su propio servidor ni que un desarrollador haga las conexiones. Basta con implementar una Cloud Function vinculada al evento que desee.
La naturaleza precisa y a pedido de Cloud Functions también hace que esta herramienta sea perfecta para las API básicas y los webhooks. Además, el aprovisionamiento automático de extremos HTTP cuando implementa una función HTTP elimina la necesidad de realizar configuraciones complicadas, como en otros servicios.
En este lab práctico, aprenderás a crear, implementar y probar una Cloud Function con la consola de Google Cloud. Harás lo siguiente :
- Crear una Cloud Function
- Implementarla y probarla
- Ver registros
2. Configuración y requisitos
Configuración del entorno de autoaprendizaje
- Accede a la consola de Cloud y crea un proyecto nuevo o reutiliza uno existente. (Si todavía no tienes una cuenta de Gmail o de G Suite, debes crear una).
Recuerde el ID de proyecto, un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya se encuentra en uso y no lo podrá usar). Se mencionará más adelante en este codelab como PROJECT_ID
.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar los recursos de Google Cloud recursos.
Ejecutar este codelab no debería costar mucho, tal vez nada. Asegúrate de seguir las instrucciones de la sección “Realiza una limpieza” en la que se aconseja cómo cerrar recursos para no incurrir en facturación más allá de este instructivo. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.
Google Cloud Shell
Si bien Google Cloud y Cloud Functions se pueden operar de forma remota desde tu laptop, en este codelab usaremos Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
Esta máquina virtual basada en Debian está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Esto significa que todo lo que necesitarás para este Codelab es un navegador (sí, funciona en una Chromebook).
- Para activar Cloud Shell desde la consola de Cloud, solo haz clic en Activar Cloud Shell (el aprovisionamiento y la conexión al entorno debería llevar solo unos minutos).
Una vez conectado a Cloud Shell, debería ver que ya se autenticó y que el proyecto ya se configuró con tu PROJECT_ID
:
gcloud auth list
Resultado del comando
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Resultado del comando
[core] project = <PROJECT_ID>
Si, por algún motivo, el proyecto no está configurado, solo emite el siguiente comando:
gcloud config set project <PROJECT_ID>
Si no conoce su PROJECT_ID
, Observa el ID que usaste en los pasos de configuración o búscalo en el panel de la consola de Cloud:
Cloud Shell también configura algunas variables de entorno de forma predeterminada, lo que puede resultar útil cuando ejecutas comandos futuros.
echo $GOOGLE_CLOUD_PROJECT
Resultado del comando
<PROJECT_ID>
- Establece la zona predeterminada y la configuración del proyecto.
gcloud config set compute/zone us-central1-f
Puedes elegir una variedad de zonas diferentes. Para obtener más información, consulta Regiones y zonas.
3. Crea una función
En este paso, creará una función de Cloud Functions con Console.
- En la consola, haz clic en el menú de navegación > Cloud Functions.
- Haz clic en “CREAR FUNCIÓN”. :
- Asigna el nombre
GCFunction
a la función y mantén los demás valores predeterminados : asignación de memoria, HTTP como activador, editor directo, entorno de ejecución predeterminado y código de muestra predeterminado.
- En la columna “Crear función” Haz clic en "Crear" en la parte inferior. para implementar la función:
Cuando hagas clic en Crear, la consola te redireccionará a la página Descripción general de Cloud Functions.
Mientras se implementa la función, aparecerá junto a ella un ícono giratorio pequeño. Cuando concluya el proceso de implementación, el ícono giratorio se convertirá en una marca de verificación verde. Si hay algún problema, recibirás una notificación con un ícono rojo y un vínculo a los registros para entender qué salió mal (probablemente un problema en tu código).
Eso es todo. Tu función ya está activa y lista para activarse a través de HTTP.
4. Prueba la función
En la página Descripción general de Cloud Functions, despliega el menú de tu función y haz clic en Probar función :
En el campo Evento de activación, ingresa el siguiente texto entre llaves {} y haz clic en Probar la función.
En el campo Resultado, deberías ver el mensaje Success: Hello World!
.
En el campo Registros (Logs), el código de estado 200 indica que la prueba se realizó con éxito. Ten en cuenta que los registros pueden tardar un minuto en aparecer.
5. Visualiza los registros de las funciones
Haz clic en la flecha azul para volver a la página Descripción general de Cloud Functions :
Despliega el menú de tu función y haz clic en Ver registros :
Este es un ejemplo del historial de registros :
Ten en cuenta que puedes filtrar registros por función, por gravedad y buscar a través de una etiqueta o texto de formato libre.
Se implementó y probó tu aplicación, y pudiste ver los registros.
6. Limpiar recursos
No es necesario que limpies recursos, ya que esto es computación sin servidores. Escalar a cero significa también reducir el costo a cero. Por lo tanto, si tu función no recibe tráfico, no se generarán costos. Además, los primeros 2 millones de invocaciones de Cloud Functions cada mes son gratuitos. Consulta la página de precios para obtener más detalles.
Si deseas borrar la función, simplemente ve a la página de resumen, selecciona la función y haz clic en DELETE (BORRAR):
7. ¿Qué sigue?
Cloud Functions tiene mucho más para ti. Consulta otros codelabs y la página del producto y su documentación.
También debes revisar lo siguiente :
- Llama a Cloud Functions (activadores disponibles para la invocación de funciones)
- Supervisión de Cloud Functions (registros, Error Reporting y más)
- ... o más codelabs de la categoría Sin servidores