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 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.

  • 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 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 os dois {PROJECT_NUMBER}@cloudservices.gserviceaccount.com e a conta de serviço do Compute Engine {PROJECT_NUMBER}-compute@developer.gserviceaccount.com ter as permissões necessárias nos recurso da API Pub/Sub. Para mais informações, consulte Segurança e permissões do Dataflow.

  • Se estiver usando o App Engine, verifique o página "Permissões" para ver se uma A conta de serviço do App Engine é listados como Editor do Pub/Sub. Se não estiver, adicione seu aplicativo do Compute Engine como um editor do Pub/Sub. Normalmente, o A conta de serviço do App Engine é de o formulário <project-id>@appspot.gserviceaccount.com:

Operações administrativas excessivas

Se você estiver 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. 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 se houver um erro. Por exemplo,

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