Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Despliegue de Funciones Python en Google Cloud sin Autenticación

3/19
Recursos

¿Cómo desplegar funciones en la nube utilizando Google Cloud?

En el fascinante mundo del desarrollo en la nube, el despliegue de funciones es una habilidad crucial. Con herramientas como Google Cloud, el proceso se vuelve eficiente y fluido. Aquí exploraremos cómo crear y desplegar funciones en la nube, asegurando que cada paso sea claro y conciso para los desarrolladores en formación.

¿Cuál es la estructura básica de la función?

Antes de profundizar en el despliegue, es esencial entender la estructura de nuestra función. El código que manejamos parte de un enfoque sencillo: acepta una petición GET y devuelve datos usando las herramientas de Google Cloud.

  • Función principal: La función recibe peticiones y usa la base de datos Google Cloud Datastore para devolver un objeto según el género solicitado.
  • Datastore: Optamos por Datastore debido a su naturaleza como base de datos no relacional, ideal para el manejo flexible de datos.

¿Cómo preparar el entorno de desarrollo?

Para trabajar en este proyecto, es indispensable contar con el entorno de desarrollo adecuado:

  1. Instalación de herramientas: Asegúrate de tener instalado Google Cloud SDK, que permite ejecutar comandos desde la terminal para interacciones con Google Cloud. Es compatible con sistemas Windows, Linux y Mac.
  2. Configuración del IDE: Utiliza tu IDE de preferencia. Es posible trabajar con Google Colab en la nube si no deseas instalar un ambiente local.
  3. Requerimientos de Python: Asegúrate de que tu script de Python esté bien configurado, especificando las dependencias necesarias en el archivo de texto.

¿Cómo desplegar la función en Google Cloud?

Desplegar una función en Google Cloud se realiza a través de diferentes métodos, cada uno con su particular enfoque:

  1. Desde la consola de comandos:

    • Asegúrate de haber iniciado sesión y configurado Google Cloud SDK.
    • Usa el comando gcloud functions deploy especificando:
      • El nombre de la función.
      • El runtime (e.g., Python 3.7).
      • El tipo de trigger (HTTP en este caso).
    gcloud functions deploy nombreFuncion \
    --runtime python37 \
    --trigger-http
    
  2. Desde la consola web de Google Cloud:

    • Navega al menú de funciones de Google Cloud.
    • Haz clic en 'Crear función' y establece los parámetros necesarios:
      • Nombre de la función.
      • Runtime.
      • Trigger.
    • Copia y pega el código directamente desde el editor de Google Cloud o carga desde un repositorio.

¿Cómo manejar las dependencias del proyecto?

Las dependencias se gestionan eficazmente definiéndolas en un archivo de requerimientos. Esto garantiza que al desplegar la función, Google Cloud identifique y descargue automáticamente las bibliotecas y paquetes necesarios.

  • Archivo de requerimientos: Asegúrate de listar todas las librerías utilizadas, como google-cloud-datastore.

¿Qué acciones tomar después del despliegue?

Una vez que la función esté desplegada, revisa y prueba su funcionamiento:

  • Verificación del despliegue: Accede al URL proporcionado por Google Cloud para probar la función.
  • Pruebas de funcionalidad: Realiza peticiones para verificar que los resultados sean los esperados, como probar diversos géneros musicales y observar los resultados devueltos.

Este guía proporciona un camino claro y efectivo para desplegar funciones en la nube utilizando Google Cloud. Mediante prácticas de desarrollo escalables, como la gestión adecuada de dependencias y configuraciones, aseguras un flujo de trabajo robusto y eficiente. Continúa explorando más sobre cómo optimizar y controlar estas funciones en ambientes de producción avanzados. ¡El viaje apenas comienza en el fascinante mundo del desarrollo en la nube!

Aportes 13

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Guía de inicio rápido para Windows
En esta página, se muestra cómo instalar el SDK de Google Cloud, inicializarlo y ejecutar los comandos principales de gcloud desde la línea de comandos.

https://cloud.google.com/sdk/docs/quickstart-windows

Prueba con Node JS v 10
En mi caso quise probar con JS. Así que indagué un poco más sobre esto en la documentación oficial que dejo a continuación: .

En mi caso, cree una función que hace una petición HTTP a JsonPlaceholder, para aquellos que quieran realizar lo mismo, sigan los siguientes pasos.

  • Crear una carpeta y agregar los archivos index.js y package.json. En index se escribe la función y en el package.json, las dependecias que deseemos agregar.
  • En mi caso quise usar axios para realizar la petición. Solo es necesario indicar la versión que queramos de la siguiente manera:
{
  "dependencies": {
    "axios": "^0.19.2"
  }
}
  • En el archivo index importamos axios, creamos y exportamos la función. Es todo 😁, espero a alguien le sirva.
exports.firstTest = async (req, res) => {
  try {
    const ID = req.query.id || 1;
    const RES = await axios(`https://jsonplaceholder.typicode.com/todos/${ID}`);
    res.status(200).send(RES.data);
  } catch (e) {
    res.status(500).send("Error");
  }
};
una pregunta puedo hacer que una función se ejecute en un intervalo de tiempo es decir todos los días a media noche y realizar una tarea en específico, cualquier tarea ?
no pude hacer deploy ni en terminal ni en consola de gcloud

Excelente explicación pero me gustaría que proporcionara el código, cabe mencionar como explica el profesor que requiere de un DataStore previamente configurado, les comparto mi función y el código:

https://us-west2-pachedev-demo-serverless.cloudfunctions.net/platzi-rolitas

https://drive.google.com/file/d/1GTDrvG3E_eAgwM76QdzgoeEZ7inihelT/view?usp=sharing

Muy buen tutorial. Quisiera preguntar, Qué se sugiere hacer si en el listado de runtimes que ofrece Google no se encuentra la tecnología en la que mi función fue desarrollada?

Personalmente, prefiero trabajar toda la arquitectura de Cloud usando IaaC como terraform. Si alguno quiere desplegar funciones usando Terraform, este es un buen tutorial de Google <https://cloud.google.com/functions/docs/tutorials/terraform>
Hola, si tienes problemas al desplegar el código, este es uno simple que te permite interactuar con la función a través del GET y el POST: ```python def metodos(request): #Enrutamiento de solicitudes if request.method == 'GET': data = request.args.get('message') return 'Hello World From GET ' + data, 200 elif request.method == 'POST': data = request.get_json() return 'Hello World From POST ' + data['message'], 200 else: return 'Method not allowed', 405 ```Para desplegarlo: ```txt gcloud functions deploy metodos --runtime python311 --trigger-http --allow-unauthenticated ```Para consumir el GET: <https://PATHATUCUENTA.cloudfunctions.net/metodos?message=muchos+datos> Para consumir el POST: curl -X POST -k -H 'Content-Type: application/json' -i 'https://PATHATUCUENTA.cloudfunctions.net/metodos' --data '{"message": "Muchos Datos" }'
Deberías explicar también como iniciaste la base de datos, así puede uno hacer el ejemplo

Si te cuesta al principio, ve el video hasta el final, es SUPER FACIL

gcloud functions deploy nombre_function --runtime python37 --trriger-http para probar nuestro codigo

Muy interesante

la administración de varios cloud functions como la manejaríamos?