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 Identity and Access Management do 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 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 de IAM Editor do Pub/Sub (roles/pubsub.editor) no projeto. Se você não tiver essa função, entre em contato com o administrador.

  • Especificou um nome para a assinatura.

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

  • Se você estiver criando uma assinatura 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 como resolver problemas de assinaturas, consulte Solução de problemas de assinaturas de pull, Solução de problemas de assinaturas 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 quem fez a solicitação tem as permissões necessárias para os recursos relevantes da API Pub/Sub, especialmente se você estiver usando a API Pub/Sub para a comunicação entre projetos.

  • Se você usa o Dataflow, verifique se o {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 da API Pub/Sub relevante. Para mais informações, consulte Segurança e permissões do Dataflow.

  • Se você estiver usando o App Engine, verifique a página "Permissões" do projeto para ver se uma conta de serviço do App Engine está listada como um editor do Pub/Sub. Se não houver, adicione sua conta de serviço do App Engine como um editor do Pub/Sub. Normalmente, a conta de serviço do App Engine está no formato <project-id>@appspot.gserviceaccount.com.

Outros códigos de erro comuns

Para conferir uma lista de outros códigos de erro comuns relacionados à API Pub/Sub e as descrições deles, consulte Códigos de erro.

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. Para ilustrar, 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. As operações GET e CREATE são do 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ê esteja razoavelmente seguro do nome da assinatura). Nessa abordagem otimista, você só recebe 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
}