Recibir mensajes de una suscripción de extracción

En este documento se describe cómo recibir mensajes de una suscripción de extracción. Puedes usar la Google Cloud consola, la CLI de Google Cloud, la biblioteca de cliente o la API Pub/Sub para crear una suscripción de extracción.

Antes de empezar

Roles y permisos necesarios

Para obtener los permisos que necesitas para extraer mensajes de las suscripciones y gestionarlos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Suscriptor de Pub/Sub (roles/pubsub.subscriber) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para extraer mensajes de las suscripciones y gestionarlos. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Se necesitan los siguientes permisos para extraer mensajes de las suscripciones y gestionarlos:

  • Extraer de una suscripción: pubsub.subscriptions.consume
  • Crear una suscripción: pubsub.subscriptions.create
  • Eliminar una suscripción: pubsub.subscriptions.delete
  • Obtener una suscripción: pubsub.subscriptions.get
  • Mostrar una suscripción: pubsub.subscriptions.list
  • Actualizar una suscripción: pubsub.subscriptions.update
  • Adjuntar una suscripción a un tema: pubsub.topics.attachSubscription
  • Obtener la política de gestión de identidades y accesos de una suscripción: pubsub.subscriptions.getIamPolicy
  • Configura la política de gestión de identidades y accesos de una suscripción: pubsub.subscriptions.setIamPolicy
  • Concede el permiso para consumir mensajes de una suscripción en la suscripción de extracción: pubsub.subscriptions.consume

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Extraer un mensaje de una suscripción

En los siguientes ejemplos se muestra cómo extraer un mensaje de una suscripción mediante la API StreamingPull o la API Pull.

API StreamingPull

Para usar la API StreamingPull, debes usar una biblioteca de cliente.

La Google Cloud consola y la CLI de Google Cloud no admiten la API StreamingPull.

Ejemplos de código de StreamingPull y de la biblioteca de cliente de alto nivel

C++

Antes de probar este ejemplo, sigue las instrucciones de configuración de C++ que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.

namespace pubsub = ::google::cloud::pubsub;
auto sample = [](pubsub::Subscriber subscriber) {
  return subscriber.Subscribe(
      [&](pubsub::Message const& m, pubsub::AckHandler h) {
        std::cout << "Received message " << m << "\n";
        std::move(