arrow_back

Google Cloud Pub/Sub: Qwik Start - Python

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Google Cloud Pub/Sub: Qwik Start - Python

Lab 30 minutos universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP094

Labs de autoaprendizaje de Google Cloud

Descripción general

El servicio Google Cloud Pub/Sub permite que las aplicaciones intercambien mensajes de forma confiable, rápida y asíncrona. Para ello, un productor de datos publica mensajes en un tema de Cloud Pub/Sub. Luego, un cliente suscriptor crea una suscripción al tema y consume mensajes desde la suscripción. Cloud Pub/Sub conserva durante un máximo de siete días los mensajes que no se pudieron entregar de forma confiable.

En este lab, aprenderás cómo comenzar a publicar mensajes con Cloud Pub/Sub mediante la biblioteca cliente de Python.

Actividades

En este lab, realizarás lo siguiente:

  • Aprenderás los conceptos básicos de Pub/Sub.
  • Crearás un tema de Pub/Sub y obtendrás una lista en la que aparecerá el tema.
  • Crearás una suscripción de Pub/Sub y obtendrás una lista en la que aparecerá la suscripción.
  • Publicarás mensajes en un tema.
  • Usarás un suscriptor de extracción para obtener mensajes de temas específicos.

Configuración y requisitos

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 su 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
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. 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 ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

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

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Í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 un entorno virtual

Se utilizan entornos virtuales de Python para aislar del sistema la instalación de paquetes.

  1. Instala el entorno virtualenv:
sudo apt-get install -y virtualenv
  1. Crea el entorno virtual:
python3 -m venv venv
  1. Activa el entorno virtual.
source venv/bin/activate

Tarea 2: Instala la biblioteca cliente

  1. Ejecuta el siguiente comando para instalar la biblioteca cliente:
pip install --upgrade google-cloud-pubsub
  1. Clona un repositorio de GitHub para obtener el código de muestra:
git clone https://github.com/googleapis/python-pubsub.git
  1. Navega al siguiente directorio:
cd python-pubsub/samples/snippets

Tarea 3: Conceptos básicos de Pub/Sub

Google Cloud Pub/Sub es un servicio de mensajería global asíncrono. Existen tres términos que aparecen con frecuencia en Pub/Sub: temas, publicar y suscribirse.

Un tema es una cadena compartida que permite que las aplicaciones se conecten entre sí a través de una conversación en común.

Los publicadores envían (o publican) un mensaje en un tema de Cloud Pub/Sub. Luego, los suscriptores se suscriben a esa conversación, en la que pueden extraer mensajes del tema o configurar webhooks para suscripciones de envío. Los suscriptores deben confirmar la recepción de cada mensaje en el transcurso de un período configurable.

En resumen, un publicador crea y envía mensajes a un tema, y un suscriptor crea una suscripción a un tema para recibir mensajes de este.

Pub/Sub en Google Cloud

Pub/Sub viene preinstalado en Cloud Shell. Por lo tanto, no es necesario instalar ni configurar este servicio para comenzar a utilizarlo. En este lab, usarás Python para crear el tema y el suscriptor, y luego ver el mensaje. Utilizarás un comando de gcloud para publicar el mensaje en el tema.

Tarea 4: Crea un tema

Para publicar datos en Cloud Pub/Sub, debes crear un tema y, luego, configurarle un publicador.

  1. En Cloud Shell, el ID de tu proyecto debería almacenarse automáticamente en la variable de entorno GOOGLE_CLOUD_PROJECT:
echo $GOOGLE_CLOUD_PROJECT
  1. Asegúrate de que el resultado es el mismo que el ID del proyecto en tus DETALLES DE LA CONEXIÓN.

publisher.py es una secuencia de comandos que demuestra cómo realizar operaciones básicas en temas con la API de Cloud Pub/Sub. Ve el contenido de la secuencia de comandos del publicador:

cat publisher.py Nota: Como alternativa, puedes utilizar los editores de shell que están instalados en Cloud Shell, como nano o vim, o bien el editor de código de Cloud Shell para ver python-pubsub/samples/snippets/publisher.py.
  1. Para obtener información sobre la secuencia de comandos del publicador, ingresa lo siguiente:
python publisher.py -h

Resultado de ejemplo:

usage: publisher.py [-h] project {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} ... This application demonstrates how to perform basic operations on topics with the Cloud Pub/Sub API. For more information, see the README.md under /pubsub and the documentation at https://cloud.google.com/pubsub/docs. positional arguments: project Your Google Cloud project ID {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} list Lists all Pub/Sub topics in the given project. create Create a new Pub/Sub topic. delete Deletes an existing Pub/Sub topic. publish Publishes multiple messages to a Pub/Sub topic. publish-with-custom-attributes Publishes multiple messages with custom attributes to a Pub/Sub topic. publish-with-futures Publishes multiple messages to a Pub/Sub topic and prints their message IDs. publish-with-error-handler Publishes multiple messages to a Pub/Sub topic with an error handler. publish-with-batch-settings Publishes multiple messages to a Pub/Sub topic with batch settings. optional arguments: -h, --help show this help message and exit
  1. Ejecuta la secuencia de comandos del publicador para crear el tema de Pub/Sub:
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

Resultado de ejemplo:

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste el tema de Cloud Pub/Sub de forma correcta, verás una puntuación de evaluación.

Crear un tema
  1. El siguiente comando devuelve una lista de todos los temas de Pub/Sub en un proyecto determinado:
python publisher.py $GOOGLE_CLOUD_PROJECT list

Resultado de ejemplo:

name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

También puedes ver el tema que acabas de crear en la consola de Cloud.

  1. Para ello, ve a Menú de navegación > Pub/Sub > Temas.

Deberías ver MyTopic.

Tarea 5: Crea una suscripción

  1. Crea una suscripción de Pub/Sub para el tema con la secuencia de comandos subscriber.py:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste una suscripción de Cloud Pub/Sub correctamente, verás un puntaje de evaluación.

Crear una suscripción
  1. El siguiente comando devuelve una lista de los suscriptores en el proyecto proporcionado:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

Verás una sola suscripción porque creaste solo una.

Resultado de ejemplo:

projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
  1. Observa la suscripción que acabas de crear en la consola. En el panel de la izquierda, haz clic en Suscripciones. Deberías ver el nombre de la suscripción y otros detalles.

  2. Para obtener más información sobre la secuencia de comandos subscriber, ingresa lo siguiente:

python subscriber.py -h

Resultado:

usage: subscriber.py [-h] project {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} ... This application demonstrates how to perform basic operations on subscriptions with the Cloud Pub/Sub API. For more information, see the README.md under /pubsub and the documentation at https://cloud.google.com/pubsub/docs. positional arguments: project Your Google Cloud project ID {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} list_in_topic Lists all subscriptions for a given topic. list_in_project Lists all subscriptions in the current project. create Create a new pull subscription on the given topic. create-push Create a new push subscription on the given topic. delete Deletes an existing Pub/Sub topic. update Updates an existing Pub/Sub subscription's push endpoint URL. Note that certain properties of a subscription, such as its topic, are not modifiable. receive Receives messages from a pull subscription. receive-custom-attributes Receives messages from a pull subscription. receive-flow-control Receives messages from a pull subscription with flow control. receive-synchronously Pulling messages synchronously. listen_for_errors Receives messages and catches errors from a pull subscription. optional arguments: -h, --help show this help message and exit

Tarea 6: Publica mensajes

Ahora que configuraste MyTopic (el tema) y una suscripción a MyTopic (MySub), intenta usar los comandos de gcloud para publicar un mensaje en MyTopic.

  1. Publica el mensaje "Hello" en MyTopic:
gcloud pubsub topics publish MyTopic --message "Hello"
  1. Publica algunos mensajes más en MyTopic. Para ello, ejecuta los siguientes comandos (reemplaza <YOUR NAME> por tu nombre y <FOOD> por una comida que te guste):
gcloud pubsub topics publish MyTopic --message "Publisher's name is <YOUR NAME>" gcloud pubsub topics publish MyTopic --message "Publisher likes to eat <FOOD>" gcloud pubsub topics publish MyTopic --message "Publisher thinks Pub/Sub is awesome"

Tarea 7: Visualiza los mensajes

Ahora que publicaste mensajes en MyTopic, extrae y ve los mensajes con MySub.

  1. Usa MySub para extraer el mensaje de MyTopic:
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

Resultado de ejemplo:

Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub Received message: Message { data: 'Publisher thinks Pub/Sub is awesome' attributes: {} } Received message: Message { data: 'Hello' attributes: {} } Received message: Message { data: "Publisher's name is Harry" attributes: {} } Received message: Message { data: 'Publisher likes to eat cheese' attributes: {} }
  1. Haz clic en Ctrl + C para dejar de escuchar.

Tarea 8. Pon a prueba tus conocimientos

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!

Utilizaste Python para crear un tema de Pub/Sub, publicaste un mensaje en el tema, creaste una suscripción y, luego, usaste la suscripción para extraer los datos del tema.

Finaliza tu Quest

Este lab de autoaprendizaje forma parte de la Quest Baseline: Infrastructure. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest o en cualquiera que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Pub/Sub Lite: Qwik Start. El complemento de Pub/Sub, Pub/Sub Lite, es un servicio zonal para sistemas de mensajería con patrones de tráfico predecibles. Si publicas 1 MiB-1 GiB de mensajes por segundo, Pub/Sub Lite podría ser mucho más económico para la transferencia de volúmenes altos de eventos.

Próximos pasos y más información

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 Google Cloud Skills Boost para encontrar el siguiente lab en el que desees participar.

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: 22 de septiembre de 2023

Prueba más reciente del lab: 22 de septiembre de 2023

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.