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

Les abonnés push sont un type d'abonné Pub/Sub qui envoie des messages depuis Pub/Sub vers un point de terminaison HTTPS spécifié par l'utilisateur. L'utilisateur accuse réception d'un message transmis en renvoyant une réponse HTTP 200 à la requête du serveur push. 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 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 d'identifier les facteurs pouvant contribuer à une latence inattendue.

Points de terminaison push lents ou en échec

Si le point de terminaison renvoie un code de réponse d'erreur, la distribution du message est considérée comme ayant échoué et fait l'objet d'une nouvelle tentative ultérieurement. 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. Dans Cloud Metrics, la métrique subscription/push_request_count classe les réponses du point de terminaison push par response_code et response_class. Les réponses sont utiles pour identifier d'éventuels dysfonctionnements des points de terminaison. Si cette métrique contient des données dont l'response_class est différent de 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 push n'a pas répondu dans le délai d'accusé de réception requis. La métrique subscription/push_request_latencies permet de suivre la latence des notifications 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 ni 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. Vous devez donc examiner les scénarios dans lesquels ce code de réponse est renvoyé. Si l'authentification est activée, vérifiez que votre compte dispose des autorisations appropriées sur le terminal. En savoir plus sur le fonctionnement de l'authentification dans les abonnements push.

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

  • Une classe de réponse unreachable indique que le serveur de point de terminaison est inaccessible du tout. 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 (VPC-SC) est activée dans un projet, la création d'abonnements push est soumise à certaines limites. Les abonnements push existants continuent de fonctionner, mais l'erreur suivante s'affiche lorsque vous créez un abonnement push: Request is prohibited by organization's policy. Plus précisément, les nouveaux abonnements push ne peuvent être créés 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 de VPC-SC.