arrow_back

Desarrolla e implementa Cloud Run Functions

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Desarrolla e implementa Cloud Run Functions

Lab 45 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

Descripción general

Google Cloud Run Functions es la versión más reciente de la oferta de funciones como servicio de Google Cloud. Esta versión incluye un conjunto de funciones avanzadas y está potenciada por Cloud Run y Eventarc, lo que brinda un control más avanzado sobre el rendimiento y la escalabilidad, y mayor control sobre el entorno de ejecución de las funciones y los activadores de más de 90 fuentes de eventos.

En este lab, crearás Cloud Run Functions que respondan a solicitudes HTTP y funciones controladas por eventos que se activen con eventos de Cloud Storage. También implementarás múltiples revisiones de Cloud Run Functions y explorarás los nuevos parámetros de configuración.

Novedades

Esta nueva versión de Cloud Run Functions ofrece una experiencia de FaaS mejorada con la tecnología de Cloud Run, Cloud Build, Artifact Registry y Eventarc.

  • Procesamiento de solicitudes más largo: Ejecuta tus Cloud Run Functions por más de 5 minutos (el valor predeterminado), lo que facilita ejecutar cargas de trabajo basadas en solicitudes más largas, como procesar grandes flujos de datos desde Cloud Storage o BigQuery. El límite es de 60 minutos para las funciones de HTTP y de 10 minutos para las funciones controladas por eventos.
  • Instancias más grandes: Aprovecha hasta 16 GB de RAM y 4 CPU virtuales en Cloud Run Functions, lo que permite cargas de trabajo más paralelas, de mayor tamaño en memoria y de procesamiento intensivo.
  • Simultaneidad: Procesa hasta 1,000 solicitudes simultáneas con una sola instancia de función, lo que minimiza los inicios en frío y mejora la latencia durante el escalamiento.
  • Instancias mínimas: Brinda instancias preparadas con anterioridad para reducir los inicios en frío y asegurarte de que el tiempo de arranque de la aplicación no afecte su rendimiento.
  • División del tráfico: Admite múltiples versiones de tus funciones, divide el tráfico entre ellas y reviértelas a una versión anterior.

Objetivos

En este lab, aprenderás a hacer lo siguiente:

  • Escribir una función que responda a solicitudes HTTP y, luego, implementarla con la consola de Google Cloud
  • Escribir una función que responda a eventos de Cloud Storage y, luego, implementarla desde el entorno local de Cloud Shell
  • Escribir pruebas de unidades para la función y probarla de forma local
  • Implementar múltiples revisiones de una Cloud Run Function con la consola de Google Cloud
  • Probar la revisión más reciente de tu función y verificar que funcione como se espera

Configuración

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Activa Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.

Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. Haz clic en Continuar.

El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

ID del proyecto destacado en la terminal de Cloud Shell

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.

  • Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

Tarea 1: Habilita las APIs

Antes de crear Cloud Run Functions, debes habilitar las APIs correspondientes.

  1. Accede a la consola de Google Cloud con las credenciales del lab y abre la ventana de terminal de Cloud Shell.

  2. Ejecuta los siguientes comandos en Cloud Shell para establecer las variables de entorno del ID del proyecto y la región:

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|set at lab start}}}
  3. Ejecuta el siguiente comando para habilitar todas las APIs de servicios necesarias.

    gcloud services enable \ artifactregistry.googleapis.com \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ logging.googleapis.com \ storage.googleapis.com \ pubsub.googleapis.com
  4. Si se te solicita, haz clic en Autorizar.

Tarea 2: Crea una función de HTTP

La primera función que crearás será una función de Node.js autenticada que responda a solicitudes HTTP para convertir un valor de temperatura de grados Fahrenheit a grados Celsius y devuelva el valor de temperatura convertido.

Crea la función

  1. Para acceder a Cloud Run Functions, en el menú de navegación (Ícono del menú de navegación), haz clic en Cloud Run Functions.

    Nota: Si no aparece en el menú de navegación, haz clic en Ver todos los productos. Desplázate a la sección Sin servidores, haz clic en el pin junto a Cloud Run Functions y, luego, haz clic en Cloud Run Functions.

    Se te redireccionará a Cloud Run en la consola.

  2. Haz clic en Escribir una función.

  3. En Nombre del servicio, escribe temperature-converter.

  4. En Región, selecciona la región .

  5. En Autenticación, selecciona Autenticación obligatoria.

  6. Desplázate hacia abajo y expande Contenedores, Volúmenes, Redes y Seguridad.

  7. En Escalamiento de revisión, ingresa 1 en Número máximo de instancias.

  8. Deja la configuración restante con sus valores predeterminados y haz clic en Crear.

  9. Nuestra función se implementará en Node.js. En la pestaña Fuente, haz clic en el ícono de edición junto a Imagen base, selecciona la versión más reciente del entorno de ejecución del lenguaje Node.js y haz clic en Guardar.

  10. En Punto de entrada de la función, escribe convertTemp.

  11. En el editor de código intercalado, reemplaza cualquier código de muestra existente por el siguiente en el archivo index.js:

    const functions = require('@google-cloud/functions-framework'); functions.http('convertTemp', (req, res) => { var dirn = req.query.convert; var ctemp = (req.query.temp - 32) * 5/9; var target_unit = 'Celsius'; if (req.query.temp === undefined) { res.status(400); res.send('Temperature value not supplied in request.'); } if (dirn === undefined) dirn = process.env.TEMP_CONVERT_TO; if (dirn === 'ctof') { ctemp = (req.query.temp * 9/5) + 32; target_unit = 'Fahrenheit'; } res.send(`Temperature in ${target_unit} is: ${ctemp.toFixed(2)}.`); });

    Esta es una función de HTTP sencilla en Node.js que convierte un valor de temperatura en grados Fahrenheit o Celsius que se pasa en la solicitud, y responde con el valor convertido.

    Functions Framework es un framework y una biblioteca de FaaS (funciones como servicio) de código abierto que te permite escribir funciones ligeras que se ejecutan en diferentes entornos, como Cloud Run Functions, tu máquina de desarrollo local y Cloud Run.

    Para obtener más información, consulta la documentación de Functions Framework.

Implementa y prueba la función

  1. Para implementar la función, haz clic en Guardar y volver a implementar. Espera a que se creen el servicio de Cloud Build y el servicio de Cloud Run subyacente.

    Después de que se implementa la función, en la página de detalles Funciones, se muestra una marca de verificación verde junto al nombre de la función.

    verifica que se haya implementado la función

  2. En Cloud Shell, recupera el URI HTTP de la función y almacénalo en una variable de entorno:

    FUNCTION_URI=$(gcloud run services describe temperature-converter --region $REGION --format 'value(status.url)'); echo $FUNCTION_URI
  3. En Cloud Shell, prueba la función con el siguiente comando:

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=70"

    Deberías ver el siguiente mensaje como respuesta:

    Temperature in Celsius is: 21.11.
  4. Vuelve a ejecutar el comando con el valor de la temperatura en grados Celsius y la unidad de conversión:

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=21.11&convert=ctof"

    Deberías ver el siguiente mensaje como respuesta:

    Temperature in Fahrenheit is: 70.00.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una función de HTTP

Tarea 3: Crea una función de Cloud Storage

En esta tarea, crearás una función controlada por eventos en Node.js que responda a eventos de un bucket de Cloud Storage.

Configuración

Para usar los activadores de Cloud Storage con Cloud Run Functions, el agente de servicio de Cloud Storage debe tener el rol de IAM Publicador de Pub/Sub (roles/pubsub.publisher) en tu proyecto.

Las funciones de Cloud Storage se basan en notificaciones de Pub/Sub desde Cloud Storage y admiten los tipos de eventos finalize, delete, archive y metadata update.

  1. Configura una variable de entorno para la cuenta de servicio del agente de Cloud Storage:

    SERVICE_ACCOUNT=$(gcloud storage service-agent)
  2. Otorga el rol Publicador de Pub/Sub al agente de servicio de Cloud Storage en tu proyecto. Un agente de servicio es una cuenta de servicio administrada por Google que permite que el servicio acceda a tus recursos.

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT --role roles/pubsub.publisher
  3. Para activar la función en una tarea posterior, subirás a Cloud Storage un archivo que contiene datos de temperatura de ejemplo. Cópialo en tu entorno de Cloud Shell:

    gcloud storage cp gs://cloud-training/CBL491/data/average-temps.csv .

Crea la función

  1. En esta subtarea, desarrollarás una función de manera local en Cloud Shell. Crea un directorio y navega a él:

    mkdir ~/temp-data-checker && cd $_
  2. Crea los archivos index.js y package.json para tu función de Node.js:

    touch index.js && touch package.json
  3. En la barra de herramientas de Cloud Shell, haz clic en Abrir editor.

    Puedes cambiar entre Cloud Shell y el editor de código usando Abrir editor y Abrir terminal, o bien haciendo clic en Abrir en una ventana nueva para dejar el editor abierto en una pestaña independiente.
  4. En el Explorador del editor, expande la carpeta temp-data-checker.

  5. Agrega el siguiente código al archivo temp-data-checker/index.js:

    const functions = require('@google-cloud/functions-framework'); // Registra una devolución de llamada de CloudEvent con Functions Framework que // será activada por eventos de Cloud Storage. functions.cloudEvent('checkTempData', cloudEvent => { console.log(`Event ID: ${cloudEvent.id}`); console.log(`Event Type: ${cloudEvent.type}`); const file = cloudEvent.data; console.log(`Bucket: ${file.bucket}`); console.log(`File: ${file.name}`); console.log(`Created: ${file.timeCreated}`); }); La función usa declaraciones `console.log` para registrar mensajes en stdout. De forma predeterminada, Cloud Run Functions incluye registros sencillos sobre el entorno de ejecución. Los mensajes de registro se recopilan y analizan con Cloud Run Functions y se envían a Cloud Logging, donde se pueden ver en la consola de Cloud.
  6. Para especificar dependencias y otra información de paquetes para tu función de Node.js, agrega el siguiente contenido al archivo temp-data-checker/package.json:

    { "name": "temperature-data-checker", "version": "0.0.1", "main": "index.js", "dependencies": { "@google-cloud/functions-framework": "^2.1.0" } }

Implementa la función

  1. En la ventana de la terminal de Cloud Shell, primero configura una variable de entorno para el nombre del bucket:

    BUCKET="gs://gcf-temperature-data-$PROJECT_ID"
  2. Crea un bucket de Cloud Storage para almacenar el archivo de datos de temperatura:

    gcloud storage buckets create -l $REGION $BUCKET
  3. Para implementar la función, ejecuta el siguiente comando en Cloud Shell:

    gcloud functions deploy temperature-data-checker \ --gen2 \ --runtime nodejs20 \ --entry-point checkTempData \ --source . \ --region $REGION \ --trigger-bucket $BUCKET \ --trigger-location $REGION \ --max-instances 1

    Si especificas trigger-bucket, cada cambio en los archivos de este bucket activará la ejecución de la función.

    Nota: Si ves un error de permisos, espera unos minutos y vuelve a intentar la implementación. Las APIs tardan un tiempo en habilitarse.
  4. Verifica que se haya implementado correctamente la función.

    verifica que se haya implementado la función

Prueba la función

  1. Sube el archivo de datos de temperatura al bucket de Cloud Storage para probar la función:

    gcloud storage cp ~/average-temps.csv $BUCKET/average-temps.csv
  2. Ejecuta el siguiente comando. Deberías ver la información del CloudEvent recibido en los registros:

    gcloud functions logs read temperature-data-checker \ --region $REGION --gen2 --limit=100 --format "value(log)" Nota: Es posible que los registros tarden un minuto en generarse.

    Debería ver un resultado similar al siguiente:

    Created: 2024-08-28T13:18:34.980Z File: average-temps.csv Bucket: gcf-temperature-data-cf-project Event Type: google.cloud.storage.object.v1.finalized Event ID: 5834307012388233 La función de Cloud Storage que se creó en este lab extrae metadatos sobre el bucket y el recurso que se crearon. Si quieres extraer y procesar los datos con servicios downstream, usa las bibliotecas cliente de Cloud Storage para el entorno de ejecución de tu lenguaje.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una función de Cloud Storage

Tarea 4: Desarrolla y prueba de forma local

Cloud Run Functions admite varios métodos para ejecutar las funciones fuera de las propias Cloud Run Functions. Esto es útil durante el desarrollo iterativo, las pruebas previas a la implementación en entornos locales, el cumplimiento de la localización de los datos y las implementaciones de múltiples nubes.

En esta tarea, modificarás una función de HTTP existente, desarrollarás pruebas de integración y de unidades, y probarás la función de forma local antes de implementarla en Cloud Run Functions.

Descarga el código fuente de la función

  1. Para acceder a Cloud Run Functions, en el menú de navegación (menú de navegación), haz clic en Cloud Run.

  2. Para ver los detalles de la función temperature-converter, selecciona su nombre.

  3. Para ver el código fuente de la función, haz clic en la pestaña FUENTE.

  4. Haz clic en Descargar archivo ZIP y guarda el archivo en una carpeta de tu computadora. Cambia el nombre del archivo a function-source.zip.

  5. En la barra de herramientas de Cloud Shell, haz clic en el menú Más (Menú Más) y selecciona Subir.

  6. En el cuadro de diálogo Subir, haz clic en Elegir archivos.

  7. Selecciona el archivo ZIP de la carpeta que descargaste previamente, haz clic en Abrir y, luego, haz clic en Subir en el cuadro de diálogo.

  8. Después de subir el archivo, ejecuta el siguiente comando en Cloud Shell:

    mkdir ~/temp-data-converter && cd $_
  9. Extrae el contenido del archivo ZIP:

    unzip ../function-source.zip

Agrega pruebas de unidades al código de la función

Primero, agreguemos algunas pruebas de unidades a la función de conversión de temperatura.

  1. Crea un directorio que contendrá todas las pruebas de funciones y el archivo de código fuente de la prueba de unidades:

    mkdir tests && touch tests/unit.http.test.js
  2. En la barra de herramientas de Cloud Shell, haz clic en Abrir editor.

  3. En el editor, agrega el siguiente código al archivo temp-data-converter/tests/unit.http.test.js. El código de prueba crea una simulación que envuelve las solicitudes y respuestas de HTTP, y usa stubs de Sinon para interpretar las respuestas que recibe de la función.

    const {getFunction} = require('@google-cloud/functions-framework/testing'); describe('functions_convert_temperature_http', () => { // Sinon es un framework de pruebas que permite crear simulaciones para apps de Node.js escritas en Express. // Express es un framework de apps web de Node.js que sirve para implementar funciones de HTTP. const sinon = require('sinon'); const assert = require('assert'); require('../'); const getMocks = () => { const req = {body: {}, query: {}}; return { req: req, res: { send: sinon.stub().returnsThis(), status: sinon.stub().returnsThis() }, }; }; let envOrig; before(() => { envOrig = JSON.stringify(process.env); }); after(() => { process.env = JSON.parse(envOrig); }); it('convertTemp: should convert a Fahrenheit temp value by default', () => { const mocks = getMocks(); mocks.req.query = {temp: 70}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Celsius is: 21.11.'), true); }); it('convertTemp: should convert a Celsius temp value', () => { const mocks = getMocks(); mocks.req.query = {temp: 21.11, convert: 'ctof'}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Fahrenheit is: 70.00.'), true); }); it('convertTemp: should convert a Celsius temp value by default', () => { process.env.TEMP_CONVERT_TO = 'ctof'; const mocks = getMocks(); mocks.req.query = {temp: 21.11}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Fahrenheit is: 70.00.'), true); }); it('convertTemp: should return an error message', () => { const mocks = getMocks(); const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.status.calledOnce, true); assert.strictEqual(mocks.res.status.firstCall.args[0], 400); }); }); Nota: Tenemos cuatro pruebas de unidades, de las cuales tres son pruebas positivas que esperan un cierto valor de temperatura en la respuesta de la función.

    La cuarta es una prueba negativa que espera que la función devuelva un código de estado de respuesta de 400 (solicitud incorrecta), ya que no se pasa ningún valor de temperatura en el objeto de solicitud.

  4. En el archivo temp-data-converter/package.json, actualiza las dependencias de la función de Node.js para incluir las secciones scripts y devDependencies:

    { "name": "temperature-converter", "version": "0.0.1", "main": "index.js", "scripts": { "unit-test": "mocha tests/unit*test.js --timeout=6000 --exit", "test": "npm -- run unit-test" }, "devDependencies": { "mocha": "^9.0.0", "sinon": "^14.0.0" }, "dependencies": { "@google-cloud/functions-framework": "^2.1.0" } }

Ejecuta las pruebas de unidades

  1. En la ventana de la terminal de Cloud Shell, ejecuta el siguiente comando para instalar primero las dependencias de la función:

    npm install Este comando ejecuta el administrador de paquetes de Node, que descarga las dependencias definidas en el archivo package.json.
  2. Ejecuta la prueba de unidades:

    npm test
  3. En el resultado del comando, verifica que se hayan superado todas las pruebas.

    > temperature-converter@0.0.1 test > npm -- run unit-test > temperature-converter@0.0.1 unit-test > mocha tests/unit*test.js --timeout=6000 --exit functions_convert_temperature_http ✔ convertTemp: should convert a Fahrenheit temp value by default ✔ convertTemp: should convert a Celsius temp value ✔ convertTemp: should convert a Celsius temp value by default ✔ convertTemp: should return an error message 4 passing (10ms) Mocha es un framework de pruebas de JavaScript que se ejecuta en Node.js y permite realizar pruebas asíncronas de forma sencilla y flexible. También debes considerar implementar pruebas de unidades, integración y sistema para tus funciones de HTTP y Cloud Run Functions controladas por eventos. Si necesitas más información para realizar pruebas antes de la implementación, consulta los vínculos en la sección Más información al final de este lab.

Tarea 5: Revisiones de funciones

Cloud Run Functions admite múltiples revisiones de una función, lo que permite dividir el tráfico entre ellas o revertir funciones a una revisión anterior.

Cada vez que implementas o vuelves a implementar una función, se crea automáticamente una revisión nueva del servicio subyacente de Cloud Run. Las revisiones son inmutables y no se pueden modificar una vez que se crean. Para realizar cambios en una función, debes volver a implementarla.

En esta tarea, implementarás la función de HTTP que creaste en la tarea anterior con una variable de entorno y usarás la consola de Google Cloud para administrar el tráfico entre dos revisiones de la función.

Vuelve a implementar la función

  1. En la consola de Google Cloud, navega a la página Detalles de la función temperature-converter.

  2. Haz clic en Editar e implementar una nueva revisión.

  3. En la pestaña Contenedor, selecciona la pestaña Variables y secretos.

  4. Para agregar una variable de entorno, en la sección Variables del entorno, haz clic en Agregar variable.

  5. En Name 1, escribe TEMP_CONVERT_TO.

  6. Para proporcionar un valor para la variable de entorno, en Value 1, escribe ctof.

  7. Haz clic en Implementar.

  8. Espera a que se complete el proceso de implementación. Cuando termine, se mostrarán dos revisiones de la función.

    De forma predeterminada, la última revisión implementada recibe el 100% del tráfico a la función. Esta revisión se implementa con una variable de entorno que le indica a la función que convierta todos los valores de temperatura de Celsius a Fahrenheit de forma predeterminada.

Prueba la revisión más reciente de la función

  1. En Cloud Shell, para probar la función, ejecuta el siguiente comando curl con el valor del parámetro de consulta temp en grados Celsius:

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=21.11"

    Deberías ver el siguiente mensaje de respuesta de la función:

    Temperature in Fahrenheit is: 70.00.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear revisiones de funciones

¡Felicitaciones!

En este lab, implementaste Cloud Run Functions que responden solicitudes HTTP y eventos de Cloud Storage. Estableciste pruebas de unidades previas a la implementación para una función de HTTP y las ejecutaste para verificar situaciones positivas y negativas cuando se llama a la función. También implementaste varias revisiones de una función y probaste la última para verificar su comportamiento.

Próximos pasos y más información

Para obtener más información sobre Cloud Run Functions, consulta la documentación:

Copyright 2025 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.