Publica y recibe mensajes en Pub/Sub con una biblioteca cliente
- Un productor de datos publica un mensaje en un tema de Pub/Sub.
- Luego, un cliente suscriptor crea una suscripción al tema y consume mensajes desde la suscripción.
Puedes configurar un entorno de Pub/Sub con cualquiera de los siguientes métodos:consola de Google Cloud , Cloud Shell, bibliotecas cliente o APIs de REST. En esta página, se muestra cómo comenzar a publicar mensajes con Pub/Sub usando bibliotecas cliente.
Pub/Sub ofrece una biblioteca cliente autogenerada de alto y bajo nivel. De forma predeterminada, como en esta guía de inicio rápido, recomendamos la biblioteca cliente de alto nivel.
Para seguir la guía paso a paso sobre esta tarea directamente en la consola Google Cloud , haz clic en Guiarme:
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Pub/Sub:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable pubsub.googleapis.com
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: ID del proyectoUSER_IDENTIFIER: Es el identificador de tu cuenta de usuario de . Por ejemplo,myemail@example.com.ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Pub/Sub:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable pubsub.googleapis.com
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: ID del proyectoUSER_IDENTIFIER: Es el identificador de tu cuenta de usuario de . Por ejemplo,myemail@example.com.ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
Instala las bibliotecas cliente
En los siguientes ejemplos, se muestra cómo instalar las bibliotecas cliente:
Python
Para obtener más información sobre la configuración de tu entorno de desarrollo de Python, consulta Guía de configuración del entorno de desarrollo de Python.
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
Si deseas obtener más información para instalar la biblioteca C++, consulta README de GitHub.
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
Si usas Maven, agrega lo siguiente al archivo pom.xml. Para obtener más información sobre las BOM, consulta Las bibliotecas de BOM de Google Cloud Platform.
Si usas Gradle, agrega lo siguiente a las dependencias:
Si usas sbt, agrega lo siguiente a las dependencias:
Si usas Visual Studio Code o IntelliJ, puedes agregar bibliotecas cliente a tu proyecto con los siguientes complementos IDE:
Los complementos brindan funcionalidades adicionales, como administración de claves para las cuentas de servicio. Consulta la documentación de cada complemento para obtener más detalles.
Node.js
npm install @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
Crea un tema y una suscripción
Una vez que crees un tema, puedes suscribirte o publicarlo.
Usa el siguiente comando gcloud pubsub topics create para crear un tema llamado my-topic. No cambies el nombre del tema, ya que se hace referencia a él en el resto del instructivo.
gcloud pubsub topics create my-topic
Usa el comando gcloud pubsub subscriptions
create para crear una suscripción. Solo los mensajes publicados en el tema después de crear la suscripción están disponibles para las aplicaciones de suscriptor.
gcloud pubsub subscriptions create my-sub --topic my-topic
Publica mensajes
Antes de ejecutar los siguientes ejemplos, asegúrate de quitar las marcas de comentario y completar los valores obligatorios que estén marcados en el código. Esto es necesario para vincular la muestra a tu proyecto y a los recursos de Pub/Sub que creaste anteriormente.
Usa my-topic para tu ID de tema.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
Recibir mensajes
Configura un suscriptor para que extraiga los mensajes que acabas de publicar. Cada suscriptor debe confirmar cada mensaje dentro de un período configurable. Los mensajes no confirmados se vuelven a entregar. Ten en cuenta que, en ocasiones, Pub/Sub entrega un mensaje varias veces para garantizar que todos los mensajes lleguen al suscriptor al menos una vez.
Antes de ejecutar los siguientes ejemplos, asegúrate de quitar las marcas de comentario y completar los valores obligatorios que estén marcados en el código. Esto es necesario para vincular la muestra a tu proyecto y a los recursos de Pub/Sub que creaste anteriormente.
Usa my-sub para tu ID de suscripción.
Para obtener más ejemplos que muestran cómo extraer mensajes, consulta Muestras de código de la biblioteca cliente.
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
¿Cómo fue?
Realiza una limpieza (opcional)
- Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usan en esta guía, puedes usar la línea de comandos para borrar el tema y la suscripción.
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
Opcional: Revoca las credenciales de autenticación que creaste y borra el archivo local de credenciales.
gcloud auth application-default revoke
-
Opcional: Revoca credenciales desde gcloud CLI.
gcloud auth revoke
¿Qué sigue?
Obtén más información sobre los conceptos de Pub/Sub que se analizan en esta página.
Aprende a compilar un sistema de Pub/Sub de uno a varios, que crea una aplicación de publicador que publica en dos aplicaciones de suscriptor independientes.
Prueba otra guía de inicio rápido de Pub/Sub que use la CLI de gcloud o la consola.
Obtén más información sobre las APIs de Pub/Sub.
Aprende a ejecutar Pub/Sub con Kotlin.