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ãohttp://
ouHTTPS://
) como o protocolo para o URL de recebimento no campopushEndpoint
.
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
}