arrow_back

Cloud Functions: Qwik Start - Línea de comandos

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Cloud Functions: Qwik Start - Línea de comandos

Lab 30 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP080

Labs de autoaprendizaje de Google Cloud

Descripción general

Una Cloud Function es un fragmento de código que se ejecuta en respuesta a un evento, como una solicitud HTTP, un mensaje desde un servicio de mensajería o la carga de un archivo. Los eventos de la nube representan todo lo que ocurre en tu entorno de nube. Pueden ser cambios en la información de la 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.

Debido a que las Cloud Functions se basan en eventos, solo se ejecutan cuando ocurre una acción. Esto las convierte en una buena opción para las tareas que necesitan realizarse rápido o que no es necesario que se ejecuten todo el tiempo.

Por ejemplo, puedes usar una Cloud Function para realizar las siguientes tareas:

  • generar automáticamente miniaturas para imágenes que se suben a Cloud Storage
  • enviar una notificación al teléfono de un usuario cuando se recibe un nuevo mensaje en Cloud Pub/Sub
  • procesar datos de una base de datos de Cloud Firestore y generar un informe

Puedes escribir tu código en cualquier lenguaje que admita Node.js y puedes implementar tu código en la nube con pocos clics. Cuando se implemente tu Cloud Function, se comenzará a ejecutar automáticamente en respuesta a eventos.

En este lab práctico, aprenderás a crear, implementar y probar una Cloud Function con la consola de Google Cloud.

En este lab práctico, aprenderás a crear, implementar y probar una Cloud Function con la línea de comandos de Google Cloud Shell.

Actividades

  • Crear una Cloud Function
  • Implementar y probar la Cloud Function
  • Consultar los registros

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Activa Cloud Shell

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. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1: Crea una función

Primero, crearás una función simple llamada helloWorld. Con esta función, se escribirá un mensaje en los registros de Cloud Functions. Se activa con los eventos de la Cloud Function y acepta una función de devolución de llamada que indica el final de la función.

En este lab, el evento de la Cloud Function es un evento de tema de Cloud Pub/Sub. Pub/Sub es un servicio de mensajería en el que los remitentes están separados de los destinatarios. Cuando se envía o publica un mensaje, se requiere una suscripción para que el receptor reciba una alerta y obtenga el mensaje. Para obtener información sobre Pub/Sub, en las guías de Cloud Pub/Sub, consulta Pub/Sub: un servicio de mensajería a escala de Google.

Para obtener más información sobre el parámetro de evento y el de devolución de llamada, en la documentación de Cloud Functions, consulta Funciones en segundo plano.

Para crear una Cloud Function, sigue estos pasos:

  1. En Cloud Shell, ejecuta el siguiente comando para establecer la región predeterminada:

    gcloud config set run/region {{{project_0.default_region |REGION}}}
  2. Crea un directorio para el código de la función:

    mkdir gcf_hello_world && cd $_
  3. Crea el archivo index.js y ábrelo para editarlo:

    nano index.js
  4. Copia lo siguiente en el archivo index.js:

    const functions = require('@google-cloud/functions-framework'); // Register a CloudEvent callback with the Functions Framework that will // be executed when the Pub/Sub trigger topic receives a message. functions.cloudEvent('helloPubSub', cloudEvent => { // The Pub/Sub message is passed as the CloudEvent's data payload. const base64name = cloudEvent.data.message.data; const name = base64name ? Buffer.from(base64name, 'base64').toString() : 'World'; console.log(`Hello, ${name}!`); });
  5. Sal de nano (Ctrl + x) y guarda (Y) el archivo.

  6. Crea el archivo package.json y ábrelo para editarlo:

  7. Copia lo siguiente en el archivo package.json:

    { "name": "gcf_hello_world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
  8. Sal de nano (Ctrl + x) y guarda (Y) el archivo.

  9. Instala las dependencias del paquete

    npm install

    Resultado esperado:

    added 140 packages, and audited 141 packages in 9s 27 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

Tarea 2. Implementa tu función

Para este lab, establecerás --trigger-topic como cf_demo.

Nota:
Las Cloud Functions se basan en eventos, lo que significa que se debe especificar un tipo de activador. Cuando se implementa una función nueva, `--trigger-topic`, `--trigger-bucket` o `--trigger-http` son eventos activadores comunes. Cuando se implementa una actualización de una función existente, se mantiene el activador actual de la función, a menos que se indique lo contrario.
  1. Implementa la función helloPubSub en un tema de Pub/Sub denominado cf-demo.

    gcloud functions deploy nodejs-pubsub-function \ --gen2 \ --runtime=nodejs20 \ --region={{{ project_0.default_region | REGION }}} \ --source=. \ --entry-point=helloPubSub \ --trigger-topic cf-demo \ --stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \ --service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \ --allow-unauthenticated Nota:
    Si recibes una notificación de la cuenta de servicio serviceAccountTokenCreator, selecciona “n”.
  2. Verifica el estado de la función:

    gcloud functions describe nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}}

    El estado ACTIVE indica que se implementó la función.

    Resultado esperado:

    BuildConfig: automaticUpdatePolicy: {} build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390 dockerRegistry: ARTIFACT_REGISTRY dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts entryPoint: helloPubSub ... State: ACTIVE ... UpdateTime: '2024-08-05T13:51:05.317298824Z' Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function

Todos los mensajes publicados en el tema activan la ejecución de la función; el contenido de los mensajes pasa como datos de entrada.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, recibirás una puntuación de evaluación.

Implementar la función

Tarea 3: Prueba la función

Luego de implementar la función y comprobar que se encuentra activa, prueba que esta pueda escribir un mensaje en el registro de la nube después de detectar un evento.

  1. Invoca Pub/Sub con algunos datos.

    gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2"

    Resultado de ejemplo:

    messageIds: - '11927162971409664'

Consulta los registros para confirmar que haya mensajes de registro con ese ID de ejecución.

Tarea 4. Consulta los registros

  1. Revisa los registros para ver tus mensajes en el historial:

    gcloud functions logs read nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Nota:
    Los registros pueden tardar alrededor de 10 min en aparecer. Además, la forma alternativa de ver los registros es en Registro > Explorador de registros.

    La Cloud Function generará información similar a la siguiente:

    LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4v6akxf4sxt TIME_UTC: 2024-08-05 15:15:25.723 LOG: Hello, Cloud Function Gen2! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:15:25.711 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4oxfjn7zlyu TIME_UTC: 2024-08-05 15:10:34.303 LOG: Hello, Friend! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:10:34.291 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4fjhyfxua3k TIME_UTC: 2024-08-05 15:03:16.342 LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!

Se implementó y probó tu aplicación, y ahora puedes ver los registros.

Tarea 5: Pon a prueba tus conocimientos

  1. A continuación, se presentan algunas preguntas de opción múltiple para reforzar tus conocimientos de los conceptos de este lab. Trata de responderlas lo mejor posible.

¡Felicitaciones!

Usaste la consola de Google Cloud para crear, implementar y probar una Cloud Function con la línea de comandos.

Realiza tu próximo lab

Este lab forma parte de una serie llamada Qwik Starts. Estos labs están diseñados para ofrecerte una visión general de las numerosas funciones disponibles en Google Cloud. Busca “Qwik Starts” en el catálogo de labs para elegir el próximo lab que desees completar.

Próximos pasos y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 5 de ago de 2024

Prueba más reciente del lab: 5 de ago de 2024

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

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