Solución de problemas generales

Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades con el uso de Pub/Sub.

No se puede crear un tema

Verifica si cuentas con los permisos necesarios. Para crear un tema de Pub/Sub, necesitas el rol de IAM Editor de Pub/Sub (roles/pubsub.editor) en el proyecto. Si no tienes este rol, comunícate con tu administrador. Para obtener más información sobre la solución de problemas relacionados con los temas, consulta Solución de problemas de temas y Solución de problemas de temas de importación.

No se puede crear una suscripción

Comprueba si completaste estos pasos:

  • Verifica si cuentas con los permisos necesarios. Para crear una suscripción de Pub/Sub, necesitas el rol de IAM de editor de Pub/Sub (roles/pubsub.editor) en el proyecto. Si no tienes este rol, comunícate con el administrador.

  • Se especificó un nombre para la suscripción.

  • Especificaste el nombre de un tema existente al que deseas adjuntar la suscripción.

  • Si creas una suscripción push, especifica https:// en minúsculas (no http:// ni HTTPS://) como el protocolo para tu URL de recepción en el campo pushEndpoint.

Para obtener más información para solucionar problemas relacionados con las suscripciones, consulta Cómo solucionar problemas de suscripciones de extracción, Cómo solucionar problemas de suscripciones de envío, Cómo solucionar problemas de suscripciones de BigQuery y Cómo solucionar problemas de suscripciones de Cloud Storage.

403 (Forbidden) error

Si recibes este error, haz lo siguiente:

  • Asegúrate de haber habilitado la API de Pub/Sub en el Consola de Google Cloud
  • Asegúrate de que la principal que realiza la solicitud tenga la los permisos necesarios de la cuenta recursos de la API de Pub/Sub, en especial si usas la API de Pub/Sub para la comunicación entre proyectos.

  • Si usas Dataflow, asegúrate de que {PROJECT_NUMBER}@cloudservices.gserviceaccount.com y la cuenta de servicio de Compute Engine {PROJECT_NUMBER}-compute@developer.gserviceaccount.com tengan los permisos necesarios en el recurso de la API de Pub/Sub relevante. Para obtener más información, consulta Seguridad y permisos de Dataflow.

  • Si usas App Engine, revisa la configuración Permisos para ver si un La cuenta de servicio de App Engine es como Editor de Pub/Sub. Si no es así, agrega tu app de Compute Engine como editor de Pub/Sub. Normalmente, el La cuenta de servicio de App Engine es el formulario <project-id>@appspot.gserviceaccount.com

Uso de operaciones administrativas excesivas

Si descubres que estás agotando demasiado tu cuota para operaciones administrativas, es posible que debas refactorizar tu código. A modo de ilustración, considera este seudocódigo. En este ejemplo, se usa una operación administrativa (GET) para verificar la presencia de una suscripción antes de que intente consumir sus recursos. GET y CREATE son operaciones administrativas:

if !GetSubscription my-sub {
  CreateSubscription my-sub
}
Consume from subscription my-sub

Un patrón más eficiente es intentar consumir mensajes de la suscripción (suponiendo que puedas estar seguro del nombre de la suscripción). Con este enfoque optimista, solo obtienes o creas la suscripción si hay un error. Considera el siguiente ejemplo:

try {
  Consume from subscription my-sub
} catch NotFoundError {
  CreateSubscription my-sub
  Consume from subscription my-sub
}