Google cloud function GCP
GCF es un servicio de computación sin servidor que permite a los desarrolladores crear y ejecutar funciones de backend de forma escalable y sin preocuparse por la infraestructura subyacente
Contenido
¿Qué es GCP?
Google Cloud Functions (GCF) es un servicio de computación sin servidor que permite a los desarrolladores crear y ejecutar funciones de backend de forma escalable y sin preocuparse por la infraestructura subyacente.
Con GCF, los desarrolladores pueden escribir pequeñas piezas de código en lenguajes como JavaScript, Python, Go, Java y más, y luego desencadenar la ejecución de esas funciones en respuesta a eventos específicos, como cambios en un archivo en Google Cloud Storage o la recepción de un mensaje en una cola de Pub/Sub.
Además, GCF se integra sin problemas con otros servicios de Google Cloud Platform (GCP), como Firebase, BigQuery, Cloud Storage y más, lo que lo convierte en una opción atractiva para aquellos que buscan crear aplicaciones escalables y sin preocuparse por la administración de servidores.
Antes de comenzar
Link o recurso | Resumen |
Registrarse en Cloud Identity |
|
Iniciar sesión en la consola de administración |
Después de seguir estos pasos, se le dirigirá a la consola de administración de GCP Cloud, donde podrá administrar sus recursos de GCP y realizar tareas de administración. |
Instala la CLI de gcloud |
En el link podrá encontrar a detalle la instalación en los distintos sistemas operativos:
|
Inicializa la CLI de gcloud |
Iniciar sesión en la consola de GCP, los principales comandos son: Configuración inicial:
Iniciar sesion:
Cerrar sesión:
Seleccionar proyecto:
|
Crear una función
Para crear la primera función, nos guiaremos del post Guía de inicio rápido de Console para Cloud Functions (2nd gen) | Documentación de Cloud Functions | Google Cloud donde explica a detalle lo que necesitamos:
1. Buscamos el producto "cloud function".
2. Procedemos a crear la función dando click en el boton "Crear funcion".
3. Nos cargara el formulario para configurar la función, vamos a realizar lo siguiente:
Conceptos básicos
Campo | Valor a configurar | Documentación |
---|---|---|
Entorno | 2ª generación | Comparación de versiones de Cloud Functions | Documentación de Cloud Functions | Google Cloud |
Nombre de la función | funcion-1 | El nombre debe comenzar con una letra, seguida de hasta 62 letras, números, guiones o guiones bajos, y debe terminar con una letra o un número |
Región | us-central-1 | Ubicaciones de Cloud Functions | Documentación de Cloud Functions | Google Cloud |
Activador | HTTP | Activadores HTTP | Documentación de Cloud Functions | Google Cloud |
Autenticación | Permitir invocaciones sin autenticar |
Configuración entorno de ejecución, Tiempo de ejecución
Campo | Valor a configurar | Documentación |
---|---|---|
Memoria asignada | 256 MB | |
CPU | 0.167 | |
Tiempo de espera | 60 segundos | Si no se completó la Cloud Function en el plazo del tiempo de espera, se finalizará la función. El tiempo de espera predeterminado es de 60 segundos. Para las funciones activadas por Eventarc, el tiempo de espera máximo que se puede especificar es 9 min (540 segundos). Para las funciones activadas por HTTPS, el tiempo de espera máximo que se puede especificar es 60 min (3,600 segundos). |
Simultaneidad, cantidad máxima de solicitudes simultáneas por instancia | 1 | La cantidad máxima de solicitudes simultáneas que pueden llegar a cada instancia de contenedor. |
Numero minimo de instancias | 0 |
Vincula la cantidad de instancias que se crean en respuesta a la carga de solicitudes que recibe tu función. A fin de mejorar el rendimiento, puedes configurar la cantidad mínima de instancias para que sea mayor que 0. Puedes cambiar una cantidad máxima de instancias para casos de uso como la limitación de costos. Los incrementos repentinos de tráfico pueden hacer que se supere el límite de manera temporal. |
Numero maximo de instancias | 100 | |
Cuenta de servicio del entorno de ejecución | Compute Engine default service account | Cuenta de servicio que la función asume como su identidad. |
Configuración entorno de ejecución, Compilación
Campo | Valor a configurar | Documentación |
---|---|---|
Crear grupos de trabajadores | Según la configuración predeterminada, tu función se compila en los grupos de trabajadores que administra Cloud Build. Para compilarla con otro, selecciona su nombre en el campo que aparece a continuación. |
Configuración entorno de ejecución, Conexión
Campo | Valor a configurar | Documentación |
---|---|---|
Configuración de entrada | Permitir todo el tráfico | Controla qué fuentes pueden enviar tráfico a la función. |
Configuración de salida, Red | Ninguna | Controla cómo se enturará el tráfico saliente de la función. Ingresa el nombre del conector para conectar o déjalo vacío para desconectar. El nombre del conector debe tener el siguiente formato completamente calificado:projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME |
Configuración entorno de ejecución, Seguridad
Campo | Valor a configurar | Documentación |
---|---|---|
Secretos | Los Secrets te permiten almacenar de manera segura claves de API, contraseñas, certificados y otros datos sensibles. Puedes usar uno o más secretos de Secret Manager en tu servicio. Se puede hacer referencia a los Secrets de varios proyectos si se proporciona su ruta de acceso completa. Activa el Secret como volumen para asegurarte de que se muestre la última versión durante la lectura. |
4. Crear el código, tenemos varias opciones:
Campo | Valor | Documentación |
---|---|---|
Entorno de ejecución | Java |
Tenemos los siguientes lenguajes de programación:
|
Punto de entrada | heloHttp | El punto de entrada de tu código, p. ej., el nombre de la función exportada.Más información |
Código fuente | Editor directo | |
Código |
|
5. Damos en implementar para crear la función.
Una ves que termine de compilar y ejecutar podemos observar que la funcion se ha creado. Vemos desde el listado de funciones, la funcion recien creada.
Al ingresar a la función podemos ver los detalles.
Si ingresamos a la URL o punto de entrada: https://function-1-rn4fxjzr2a-uc.a.run.app