Es posible que los suscriptores no puedan controlar los mensajes por varios motivos. Por ejemplo, podría haber problemas transitorios para recuperar los datos necesarios para procesar un mensaje. O bien, un mensaje podría estar en un formato que el suscriptor no espera.
Para administrar los mensajes que no se pueden entregar y que los suscriptores no pueden confirmar, Pub/Sub puede reenviarlos a un tema de mensajes no entregados (también conocido como cola de mensajes no entregados).
Antes de comenzar
Crea un tema para la configuración del tema de mensajes no entregados.
O bien, si sigues todas las instrucciones de esta página de principio a fin, puedes crear el tema en un paso posterior.
Roles requeridos
Para obtener los permisos que
necesitas para administrar temas y suscripciones,
pídele a tu administrador que te otorgue el
rol de IAM de editor de Pub/Sub (roles/pubsub.editor
)
en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Puedes configurar el control de acceso a nivel de proyecto y a nivel de los recursos individuales. Puedes crear una suscripción en un proyecto y adjuntarla a un tema ubicado en otro proyecto. Asegúrate de tener los permisos necesarios para cada proyecto.
Cómo funcionan los temas de mensajes no entregados
Cuando una aplicación del suscriptor no puede confirmar un mensaje, Pub/Sub vuelve a intentar la entrega hasta que se cumple la fecha límite de confirmación o vence el mensaje. Después de una cantidad de intentos de entrega configurada aproximadamente, Pub/Sub puede reenviar el mensaje que no se puede entregar a un tema de mensajes no entregados.
Cuando Pub/Sub reenvía un mensaje que no se puede entregar, lo encapsula en uno nuevo y agrega atributos que identifican la suscripción de origen. Luego, el mensaje se envía al tema de mensajes no entregados especificado. Luego, una suscripción independiente adjunta al tema de mensajes no entregados puede recibir estos mensajes reenviados para su análisis y depuración sin conexión.
Cómo se calculan los intentos de entrega máximos
Pub/Sub solo cuenta los intentos de entrega cuando un tema de mensajes no entregados está configurado correctamente y tiene los permisos de IAM correctos.
La cantidad máxima de intentos de entrega es aproximada, ya que Pub/Sub reenvía mensajes no entregables con base en el mejor esfuerzo. El servicio puede reenviar un mensaje después de menos intentos de los que se configuraron, o bien puede intentar la entrega algunas veces más antes de reenviarlo.
La cantidad de intentos de entrega registrados para un mensaje también se puede restablecer a cero, especialmente en el caso de una suscripción de extracción con suscriptores inactivos. Como resultado, es posible que los mensajes se entreguen al cliente suscriptor más veces que la cantidad máxima configurada de intentos de entrega.
Propiedades del tema de mensajes no entregados
Puedes establecer las siguientes propiedades de suscripción en un tema de mensajes no entregados.
Cantidad máxima de intentos de entrega: Es un valor numérico que indica la cantidad de intentos de entrega que Pub/Sub realiza para un mensaje específico. Si el cliente suscriptor no puede confirmar la recepción del mensaje dentro de la cantidad configurada de intentos de entrega, el mensaje se reenvía a un tema de mensajes no entregados.
- Valor predeterminado = 5
- Valor máximo = 100
- Valor mínimo = 5
Proyecto con el tema de mensajes no entregados: Si el tema de mensajes no entregados está en un proyecto diferente al de la suscripción, debes especificar el proyecto con el tema de mensajes no entregados. Establece el tema de mensajes no entregados en un tema diferente al tema al que se adjuntó la suscripción.
Configura un tema de mensajes no entregados
En los siguientes pasos, se describe el flujo de trabajo para usar temas de mensajes no entregados.
Crea un tema (para usarlo como tema de mensajes no entregados).
Crea una suscripción para tu tema de mensajes no entregados.
Habilita Mensajes no entregados en tu suscripción.
Adjunta el tema que creaste anteriormente a tu suscripción.
Otorga los roles necesarios para usar temas de mensajes no entregados en tu cuenta de servicio de Pub/Sub.
Crea un tema para usarlo con temas de mensajes no entregados
Si ya creaste un tema para usar en tu suscripción, puedes omitir este paso.
En la consola de Google Cloud , ve a la página Temas.
Haz clic en Crear un tema.
Ingresa un ID de tema, por ejemplo,
my-test-topic
.Conserva la opción de suscripción predeterminada y haz clic en Crear.
Configura un tema de mensajes no entregados en una suscripción
Puedes establecer un tema de mensajes no entregados en una suscripción nueva o existente.
Cómo configurar un tema de mensajes no entregados en una suscripción nueva
Puedes crear una suscripción y establecer un tema de mensajes no entregados con la consola deGoogle Cloud , Google Cloud CLI, las bibliotecas cliente o la API de Pub/Sub.
Console
Para crear una suscripción y establecer un tema de mensajes no entregados, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página Suscripciones.
Haz clic en Crear suscripción.
Ingresa el ID de suscripción.
Elige el tema que quieras usar con tu suscripción. La suscripción recibe mensajes del tema. Este no es tu tema de mensajes no entregados. Elegirás esa opción en el siguiente paso.
En la sección Mensajes no entregados, selecciona Habilitar mensajes no entregados.
Elige un tema de mensajes no entregados en el menú desplegable.
Si el tema de mensajes no entregados elegido no tiene una suscripción, el sistema te solicitará que crees una.
En el campo Cantidad máxima de intentos de entrega, especifica un número entero entre 5 y 100.
Haz clic en Crear.
Haz clic en el panel Detalles para identificar cualquier elemento de acción posible. Si alguno de los elementos muestra un ícono de error
, haz clic en el elemento de acción para resolver el problema.
gcloud
Para crear una suscripción y establecer un tema de mensajes no entregados, usa el comando gcloud pubsub subscriptions create
:
gcloud pubsub subscriptions create subscription-id \ --topic=topic-id \ --dead-letter-topic=dead-letter-topic-name \ [--max-delivery-attempts=max-delivery-attempts] \ [--dead-letter-topic-project=dead-letter-topic-project]
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Pub/Sub de Go (v2). Si aún usas la biblioteca de la versión 1, consulta la guía de migración a la versión 2. Para ver una lista de muestras de código de la versión 1, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
En el siguiente ejemplo, se usa la versión 3 de la biblioteca cliente de Pub/Sub de Ruby. Si aún usas la biblioteca de la versión 2, consulta la guía de migración a la versión 3. Para ver una lista de muestras de código de Ruby v2, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido de Pub/Sub sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Cómo establecer un tema de mensajes no entregados para una suscripción existente
Puedes actualizar una suscripción y establecer un tema de mensajes no entregados con laGoogle Cloud consola, gcloud CLI, las bibliotecas cliente o la API de Pub/Sub.
Console
Para actualizar una suscripción y establecer un tema de mensajes no entregados, completa los siguientes pasos.
En la consola de Google Cloud , ve a la página Suscripciones.
Junto a la suscripción que quieras actualizar, haz clic en Más acciones more_vert.
En el menú contextual, selecciona Editar.
En la sección Mensajes no entregados, selecciona Habilitar mensajes no entregados.
Elige un tema de mensajes no entregados en el menú desplegable.
Si el tema de mensajes no entregados elegido no tiene una suscripción, el sistema te solicitará que crees una.
En el campo Cantidad máxima de intentos de entrega, especifica un número entero entre 5 y 100.
Haz clic en Actualizar.
Haz clic en el panel Detalles para identificar cualquier elemento de acción posible. Si alguno de los elementos muestra un ícono de error
, haz clic en el elemento de acción para resolver el problema.
gcloud
Para actualizar una suscripción y establecer un tema de mensajes no entregados, usa el comando gcloud pubsub subscriptions update
:
gcloud pubsub subscriptions update subscription-id \ --dead-letter-topic=dead-letter-topic-name \ [--max-delivery-attempts=max-delivery-attempts] \ [--dead-letter-topic-project=dead-letter-topic-project]
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Pub/Sub de Go (v2). Si aún usas la biblioteca de la versión 1, consulta la guía de migración a la versión 2. Para ver una lista de muestras de código de la versión 1, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
En el siguiente ejemplo, se usa la versión 3 de la biblioteca cliente de Pub/Sub de Ruby. Si aún usas la biblioteca de la versión 2, consulta la guía de migración a la versión 3. Para ver una lista de muestras de código de Ruby v2, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido de Pub/Sub sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Otorga los roles de IAM para usar temas de mensajes no entregados
Para reenviar mensajes no entregados a un tema de mensajes no entregados, Pub/Sub debe tener permiso para hacer lo siguiente:
- Publicar mensajes en el tema
- Confirma la recepción de los mensajes, lo que los quita de la suscripción.
Pub/Sub crea y mantiene una cuenta de servicio para cada proyecto: service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
.
Puedes otorgar permisos de reenvío si asignas roles de publicador y suscriptor a esta cuenta de servicio.
Console
Para otorgarle a Pub/Sub permiso para publicar mensajes en un tema de mensajes no entregados, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página Suscripciones.
Haz clic en el nombre de la suscripción que tiene el tema de mensajes no entregados.
Haz clic en la pestaña Dead lettering.
Para asignar un rol de publicador, haz clic en Otorgar rol de publicador. Si el rol de publicador se asignó correctamente, verás una marca de verificación azul
.Para asignar un rol de suscriptor, haz clic en Otorgar rol de suscriptor. Si el rol de publicador se asignó correctamente, verás una marca de verificación azul
.
gcloud
A fin de otorgarle a Pub/Sub permiso para publicar mensajes en el tema de mensajes no entregados, ejecuta el siguiente comando:
PUBSUB_SERVICE_ACCOUNT="service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud pubsub topics add-iam-policy-binding dead-letter-topic-name \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role="roles/pubsub.publisher"
Para otorgarle a Pub/Sub permiso para confirmar los mensajes no entregados reenviados, ejecuta el siguiente comando:
PUBSUB_SERVICE_ACCOUNT="service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud pubsub subscriptions add-iam-policy-binding subscription-id \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role="roles/pubsub.subscriber"
Sigue los intentos de entrega
Después de habilitar un tema de mensajes no entregados para una suscripción, cada mensaje de esa suscripción tiene un campo que especifica la cantidad de intentos de entrega:
Los mensajes que se reciben de una suscripción de extracción incluyen el campo
delivery_attempt
.Los mensajes recibidos de una suscripción de envío incluyen el campo
deliveryAttempt
.
En los siguientes ejemplos, se muestra cómo obtener la cantidad de intentos de entrega:
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Pub/Sub de Go (v2). Si aún usas la biblioteca de la versión 1, consulta la guía de migración a la versión 2. Para ver una lista de muestras de código de la versión 1, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
En el siguiente ejemplo, se usa la versión 3 de la biblioteca cliente de Pub/Sub de Ruby. Si aún usas la biblioteca de la versión 2, consulta la guía de migración a la versión 3. Para ver una lista de muestras de código de Ruby v2, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Cuando Pub/Sub reenvía un mensaje que no se puede entregar a un tema de mensajes no entregados, agrega los siguientes atributos al mensaje:
CloudPubSubDeadLetterSourceDeliveryCount
: Es la cantidad de intentos de entrega a la suscripción de origen.CloudPubSubDeadLetterSourceSubscription
: Es el nombre de la suscripción de origen.CloudPubSubDeadLetterSourceSubscriptionProject
: Es el nombre del proyecto que contiene la suscripción de origen.CloudPubSubDeadLetterSourceTopicPublishTime
: Es la marca de tiempo en la que se publicó originalmente el mensaje.CloudPubSubDeadLetterSourceDeliveryErrorMessage
: Es el motivo por el que no se pudo entregar el mensaje en el destino original. El atributo solo existe para las suscripciones de exportación.
Supervisa mensajes reenviados
Después de reenviar un mensaje que no se puede entregar, el servicio de Pub/Sub quita el mensaje de la suscripción. Puedes supervisar los mensajes reenviados con Cloud Monitoring.
Si adjuntas una suscripción al tema de mensajes no entregados, los mensajes usan la política de vencimiento de la suscripción adjunta en lugar del período de vencimiento de la suscripción con la propiedad del tema de mensajes no entregados.
La métrica subscription/dead_letter_message_count
registra la cantidad de mensajes que no se pueden entregar que Pub/Sub reenvía desde una suscripción.
Para obtener más información, consulta Supervisa los mensajes que no se pueden entregar.
Cómo quitar un tema de mensajes no entregados
Para detener el reenvío de mensajes que no se pueden entregar, quita el tema de mensajes no entregados de la suscripción.
Puedes quitar un tema de mensajes no entregados de una suscripción con laGoogle Cloud consola, gcloud CLI o la API de Pub/Sub.
Console
Para quitar un tema de mensajes no entregados de una suscripción, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página Suscripciones.
En la lista de suscripciones, haz clic en more_vert junto a la suscripción que quieres actualizar.
En el menú contextual, selecciona Editar.
En la sección Mensajes no entregados, desactiva Habilitar mensajes no entregados.
Haz clic en Actualizar.
gcloud
Para quitar un tema de mensajes no entregados de una suscripción, usa el comando gcloud pubsub subscriptions update
y la marca --clear-dead-letter-policy
:
gcloud pubsub subscriptions update subscription-id \ --clear-dead-letter-policy
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Pub/Sub de Go (v2). Si aún usas la biblioteca de la versión 1, consulta la guía de migración a la versión 2. Para ver una lista de muestras de código de la versión 1, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
En el siguiente ejemplo, se usa la versión 3 de la biblioteca cliente de Pub/Sub de Ruby. Si aún usas la biblioteca de la versión 2, consulta la guía de migración a la versión 3. Para ver una lista de muestras de código de Ruby v2, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido de Pub/Sub sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Precios
Cuando el servicio de Pub/Sub reenvía mensajes que no se pueden entregar, se aplican las siguientes tarifas:
- Publica las tarifas facturadas en la cuenta de facturación asociada con el proyecto que contiene el tema de los mensajes no entregados.
- Las tarifas de suscripción para los mensajes salientes se facturan a la cuenta de facturación asociada con el proyecto que contiene la suscripción con la propiedad del tema de mensajes no entregados.
Si estableces la propiedad del tema de mensajes no entregados de una suscripción, pero la política de ubicación de almacenamiento de mensajes del tema de mensajes no entregados no permite la región que contiene la suscripción, también se aplican las tarifas de publicación de los mensajes salientes.
Las tarifas de publicación de los mensajes salientes se facturan al proyecto que contiene el tema de mensajes no entregados. Para obtener más información, consulta Precios.
## Qué sigue
- Obtén los mensajes reenviados que no se pueden entregar.
- Supervisa aplicaciones de Pub/Sub.
- Aprende conceptos de entrega de mensajes.