Solução de problemas gerais

Conheça as etapas de solução de problemas que podem ser úteis se você tiver dificuldades ao usar o Pub/Sub.

Não é possível criar um tópico

Verifique se você tem as permissões necessárias. Para criar um tópico do Pub/Sub, é preciso ter o papel do IAM de Editor do Pub/Sub (roles/pubsub.editor) no projeto. Se você não tiver essa função, entre em contato com o administrador. Para mais informações sobre solução de problemas, consulte Tópicos de solução de problemas e Solução de problemas de tópicos de importação.

Não é possível criar uma assinatura

Verifique se você fez o seguinte:

  • Verifique se você tem as permissões necessárias. Para criar uma assinatura do Pub/Sub, você precisa do papel do IAM de Editor do Pub/Sub (roles/pubsub.editor) no projeto. Se você não tiver essa função, entre em contato com o administrador.

  • Especifica um nome para a assinatura.

  • Especificou o nome de um tópico atual ao qual você quer anexar a assinatura.

  • Se você estiver criando uma assinatura de push, especifique https:// em letras minúsculas (não http:// ou HTTPS://) como o protocolo para o URL de recebimento no campo pushEndpoint.

Para mais informações sobre solução de problemas de assinaturas, consulte Como solucionar problemas de assinaturas de pull, Como solucionar problemas de assinaturas de push, Como solucionar problemas de assinaturas do BigQuery e Como solucionar problemas de assinaturas do Cloud Storage.

403 (Forbidden) erro

Se você receber esse erro, faça o seguinte:

  • Verifique se você ativou a API Pub/Sub no console do Google Cloud.
  • Verifique se o principal que fez a solicitação tem as permissões necessárias nos recursos relevantes da API Pub/Sub, especialmente se você usar a API Pub/Sub para a comunicação entre projetos.
  • Se você estiver usando o Dataflow, verifique se {PROJECT_NUMBER}@cloudservices.gserviceaccount.com e a conta de serviço do Compute Engine {PROJECT_NUMBER}-compute@developer.gserviceaccount.com têm as permissões necessárias no recurso relevante da API Pub/Sub. Para mais informações, consulte Segurança e permissões do Dataflow.
  • Se estiver usando o App Engine, verifique a página Permissões do seu projeto para ver se uma conta de serviço do App Engine está listada como um Editor. Se não houver, adicione sua conta de serviço do App Engine como Editor. Normalmente, a conta de serviço do App Engine está no formato <project-id>@appspot.gserviceaccount.com.

Operações administrativas excessivas

Se você perceber que está gastando muito da cota de operações administrativas, talvez seja necessário refatorar o código. Como ilustração, considere este pseudocódigo. Neste exemplo, uma operação administrativa (GET) está sendo usada para verificar a presença de uma assinatura antes de tentar consumir os recursos dela. Tanto GET quanto CREATE são operações administrativas:

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

Um padrão mais eficiente é tentar consumir mensagens da assinatura (supondo que você possa ter certeza do nome da assinatura). Nessa abordagem otimista, você só consegue ou cria a assinatura em caso de erro. Por exemplo,

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