Publica y recibe mensajes en Pub/Sub con una biblioteca cliente
El servicio Pub/Sub permite que las aplicaciones intercambien mensajes de manera confiable, rápida y asíncrona. La siguiente es la secuencia de eventos:
- Un productor de datos publica un mensaje en un tema de Pub/Sub.
- 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: la consola de Google Cloud, Cloud Shell, las bibliotecas cliente o las APIs de REST. En esta página, se muestra cómo comenzar a publicar mensajes con Pub/Sub mediante el uso de las bibliotecas cliente.
Pub/Sub ofrece una biblioteca cliente generada automáticamente de nivel alto y de nivel bajo. 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 en esta tarea directamente en la consola de Google Cloud, haz clic en Guiarme:
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
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 Configurar un entorno de programación 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
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
Node.js
npm install --save @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
Crea un tema y una suscripción
Después de crear 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 hará referencia a él en el resto del instructivo.
gcloud pubsub topics create my-topic
Usa el comando gcloud pubsub suscripciones 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
Para obtener más información sobre cómo nombrar tus temas y suscripciones, consulta Nombres de recursos.
Publica mensajes
Antes de ejecutar las siguientes muestras, asegúrate de quitar los comentarios y completar cualquiera de 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 antes.
Usa my-topic
para el ID de tu 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 las siguientes muestras, asegúrate de quitar los comentarios y completar cualquiera de 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 antes.
Usa my-sub
para tu ID de suscripción.
Para obtener más ejemplos que muestren 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
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the 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.
Obtén información para compilar un sistema de Pub/Sub de uno a varios, que crea una aplicación del publicador que publica en dos aplicaciones de suscriptores 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.