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. A continuación, se muestra la secuencia de eventos:
- 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 Trusted 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.
Antes de comenzar
-
Install the Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a gcloud CLI con tu identidad federada.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Create or select a Trusted Cloud project.
-
Create a Trusted Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Trusted Cloud project you are creating. -
Select the Trusted Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Trusted Cloud project name.
-
-
Verify that billing is enabled for your Trusted 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
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
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 the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account. For examples, see Represent workforce pool users in IAM policies.ROLE
: the IAM role that you grant to your user account.
- Para evitar que se apliquen cargos a tu cuenta de Trusted Cloud by S3NS 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
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.
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
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 @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 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 los siguientes ejemplos, asegúrate de quitar las marcas de comentario 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 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 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 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