Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades con Pub/Sub.
No se puede crear un tema
Verifica que tengas los permisos necesarios.
Para crear un tema de Pub/Sub, necesitas el rol de Identity and Access Management de 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 Soluciona problemas de temas y Soluciona problemas de importación de temas.
No se puede crear una suscripción
Comprueba si completaste estos pasos:
Verifica que tengas 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 tu administrador.
Especificaste 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 (nohttp://
niHTTPS://
) como el protocolo para tu URL de recepción en el campopushEndpoint
.
Para obtener más información para solucionar problemas relacionados con las suscripciones, consulta Soluciona problemas de suscripciones de extracción, Soluciona problemas de suscripciones de envío, Soluciona problemas de suscripciones de BigQuery y Soluciona problemas de suscripciones de Cloud Storage.
403 (Forbidden)
error
Si recibes este error, haz lo siguiente:
- Asegúrate de que habilitaste la API de Pub/Sub en la console de Google Cloud.
Asegúrate de que la cuenta principal que realiza la solicitud tenga los permisos necesarios en los recursos relevantes 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 página de permisos de tu proyecto para ver si alguna cuenta de servicio de App Engine aparece como editor de Pub/Sub. Si no es así, agrega tu cuenta de servicio de App Engine como editor de Pub/Sub. Por lo general, la cuenta de servicio de App Engine tiene el formato
<project-id>@appspot.gserviceaccount.com
.
Otros códigos de error comunes
Para obtener una lista de otros códigos de error comunes relacionados con la API de Pub/Sub y sus descripciones, consulta Códigos de error.
Uso de operaciones administrativas excesivas
Si descubres que consumes demasiado tu cuota para operaciones administrativas, es posible que debas reestructurar el 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
Una opción más eficaz es intentar consumir los mensajes de la suscripción (siempre 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
}