arrow_back

Pub/Sub: Qwik Start - Python

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

Pub/Sub: Qwik Start - Python

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

GSP094

Labs de autoaprendizaje de Google Cloud

Descripción general

El servicio Pub/Sub permite que las aplicaciones intercambien mensajes de manera 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 empezar a publicar mensajes con Pub/Sub con la biblioteca cliente de Python.

Actividades

En este lab, realizarás lo siguiente:

  • Aprenderás los conceptos básicos de Pub/Sub.
  • Crearás, borrarás y mostrarás una lista de suscripciones de Pub/Sub.
  • 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 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 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

Pub/Sub es un servicio de mensajería global asíncrono. Hay tres términos que aparecen a menudo 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 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 que no es necesario realizar instalación o configuración alguna para empezar a usar este servicio. 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 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), usa 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!

Usaste 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.

Próximos pasos y más información

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. Prueba Pub/Sub Lite con este 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 Google Cloud Skills Boost para elegir el próximo lab que desees completar.

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.

Última actualización del manual: 13 de febrero de 2024

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.

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