Solução de problemas gerais

Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você tiver problemas 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, 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 seu administrador. Para mais informações sobre solução de problemas relacionadas aos tópicos, consulte Tópicos de solução de problemas e Solução de problemas 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 seu administrador.

  • Especificou um nome para a assinatura.

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

  • Ao criar 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 Solução de problemas de assinaturas de pull, Solução de problemas de assinaturas de push, Solução de problemas de assinaturas do BigQuery e Solução de 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.
  • Confira se o principal que fez a solicitação tem as permissões necessárias nos recursos relevantes da API Pub/Sub, principalmente se você usar a API Pub/Sub para 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 você usa 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. Tanto GET quanto CREATE são operações de administrador:

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ê tenha certeza do nome dela). Nessa abordagem otimista, você só recebe ou cria a assinatura se houver um erro. Por exemplo,

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