Resolução de problemas de uma subscrição push

Os subscritores push são um tipo de subscritor do Pub/Sub em que as mensagens são enviadas do Pub/Sub para um ponto final HTTPS especificado pelo utilizador. O utilizador confirma uma mensagem enviada por push devolvendo uma resposta HTTP 200 ao pedido do servidor de push. Este documento fornece algumas sugestões de resolução de problemas comuns para subscrições push do Pub/Sub. Leia mais sobre as subscrições push no guia de subscrições push.

Para monitorizar eficazmente a sua subscrição do Pub/Sub, recomendamos que consulte primeiro a pontuação de estado da latência de entrega (subscription/delivery_latency_health_score) para verificar que fatores podem estar a contribuir para uma latência inesperada.

Falha ou lentidão dos pontos finais de envio

Se o ponto final devolver um código de resposta de erro, a entrega da mensagem é considerada como tendo falhado e é tentada novamente mais tarde. Isto pode levar potencialmente a que o ponto final receba mensagens duplicadas.

Existem várias métricas que pode usar para monitorizar as subscrições de push. A métrica subscription/push_request_count nas métricas da nuvem categoriza as respostas do ponto final de envio por response_code e response_class. As respostas são úteis para a identificação de potenciais avarias de pontos finais. Se esta métrica tiver dados com um response_class diferente de ack, isto indica que o ponto final de envio está a devolver erros ao Pub/Sub. Alguns dos erros mais comuns incluem:

  • Uma classe de resposta deadline_exceeded indica que o ponto final de envio não respondeu dentro do prazo de confirmação (ack) necessário. A métrica subscription/push_request_latencies ajuda a monitorizar a latência de confirmação de envio.

  • Uma classe de resposta invalid indica que o ponto final enviou uma resposta que o Pub/Sub não conseguiu compreender nem processar corretamente.

  • Uma classe de resposta remote_server_4xx indica normalmente problemas de autenticação ou autorização. Estes são códigos de resposta HTTP devolvidos pelo ponto final, por isso, analise os cenários em que este código de resposta é devolvido. Se a autenticação estiver ativada, confirme se a sua conta tem a autorização correta no ponto final. Saiba como funciona a autenticação nas subscrições push.

  • Uma classe de resposta remote_server_5xx indica um problema do lado do servidor do lado do ponto final. O ponto final não consegue processar o pedido. Isto pode dever-se a uma manutenção ou uma interrupção em curso. Reveja o estado do servidor que aloja o ponto final.

  • Uma classe de resposta unreachable indica que não é possível alcançar o servidor do ponto final. Verifique se existem erros ortográficos no URL do ponto final.

Saiba mais acerca dos códigos de erro mais comuns da API Pub/Sub.

Restrições nas subscrições push dentro de um perímetro do VPC-SC

Se a proteção dos VPC Service Controls (VPC-SC) estiver ativada num projeto, existem limitações na criação de subscrições push. As subscrições push existentes continuam a funcionar, mas quando cria uma nova subscrição push, vê o erro: Request is prohibited by organization's policy. Em concreto, só é possível criar novas subscrições push se o ponto final push for um serviço do Cloud Run que use o URL run.app predefinido. Para mais detalhes e limitações específicas, consulte a documentação do Pub/Sub e a documentação do VPC-SC.