Résoudre les problèmes liés à un abonnement push

Les abonnés push sont un type d'abonnés Pub/Sub dans lesquels les messages sont envoyés de Pub/Sub à un point de terminaison HTTPS spécifié par l'utilisateur. L'utilisateur confirme un message envoyé en mode push en renvoyant une réponse HTTP 200 à la requête du serveur de diffusion. Ce document fournit des conseils de dépannage courants pour les abonnements push Pub/Sub. Pour en savoir plus sur les abonnements push, consultez le Guide pour les abonnés – Mode push.

Pour surveiller efficacement votre abonnement Pub/Sub, nous vous recommandons de commencer par examiner le score d'état de latence de distribution (subscription/delivery_latency_health_score) afin de vérifier quels facteurs peuvent contribuer à une latence inattendue.

Points de terminaison de transfert lents ou défaillants

Si le point de terminaison renvoie un code de réponse d'erreur, la diffusion du message est considérée comme ayant échoué et est réessayée plus tard. Cela peut entraîner la réception de messages en double par le point de terminaison.

Vous pouvez utiliser plusieurs métriques pour surveiller les abonnements push. La métrique subscription/push_request_count dans Cloud Metrics catégorise les réponses du point de terminaison push par response_code et response_class. Les réponses sont utiles pour identifier les dysfonctionnements potentiels des points de terminaison. Si cette métrique contient des données avec un response_class autre que ack, cela signifie que le point de terminaison push renvoie des erreurs à Pub/Sub. Voici quelques-unes des erreurs les plus courantes:

  • Une classe de réponse deadline_exceeded indique que le point de terminaison de transfert n'a pas répondu dans le délai d'acquittement (ACK) requis. La métrique subscription/push_request_latencies permet de suivre la latence d'acquittement push.

  • Une classe de réponse invalid indique que le point de terminaison a renvoyé une réponse que Pub/Sub n'a pas pu comprendre ou traiter correctement.

  • Une classe de réponse remote_server_4xx indique généralement des problèmes d'authentification ou d'autorisation. Il s'agit de codes de réponse HTTP renvoyés par le point de terminaison. Examinez donc les scénarios dans lesquels ce code de réponse est renvoyé. Si l'authentification est activée, vérifiez que votre compte dispose de l'autorisation appropriée sur le point de terminaison. Découvrez comment fonctionne l'authentification dans les abonnements push.

  • Une classe de réponse remote_server_5xx indique un problème côté serveur au niveau du point de terminaison. Le point de terminaison ne peut pas traiter la requête. Cela peut être dû à une maintenance ou une panne en cours. Vérifiez l'état du serveur qui héberge le point de terminaison.

  • Une classe de réponse unreachable indique que le serveur de point de terminaison est totalement inaccessible. Vérifiez que l'URL du point de terminaison ne contient pas de fautes de frappe.

Découvrez les codes d'erreur les plus courants de l'API Pub/Sub.

Restrictions concernant les abonnements push dans un périmètre VPC-SC

Si la protection VPC Service Controls est activée dans un projet, la création d'abonnements push est limitée. Les abonnements push existants continuent de fonctionner, mais lorsque vous créez un abonnement push, l'erreur Request is prohibited by organization's policy s'affiche. Plus précisément, vous ne pouvez créer de nouveaux abonnements push que si le point de terminaison push est un service Cloud Run utilisant l'URL run.app par défaut. Pour en savoir plus et connaître les limites spécifiques, consultez la documentation Pub/Sub et la documentation VPC-SC.