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

Les abonnés push sont un type d'abonné Pub/Sub où les messages sont envoyés depuis Pub/Sub vers un point de terminaison HTTPS spécifié par l'utilisateur. L'utilisateur accuse réception d'un message envoyé 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 consulter 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 push en échec ou lents

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 une nouvelle tentative est effectuée ultérieurement. Le point de terminaison peut alors recevoir des messages en double.

Vous pouvez utiliser plusieurs métriques pour surveiller les abonnements push. La métrique subscription/push_request_count dans Cloud Metrics classe les réponses du point de terminaison push en fonction de response_code et de response_class. Les réponses sont utiles pour identifier d’éventuels dysfonctionnements des points de terminaison. Si cette métrique comporte 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 push n'a pas répondu dans le délai de confirmation requis. La métrique subscription/push_request_latencies permet de suivre la latence de confirmation 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. Examinez 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 point de terminaison. 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 côté point de terminaison. Le point de terminaison ne peut pas traiter la requête. Cela peut être dû à une maintenance en cours ou à une interruption de service. Vérifiez l'état du serveur hébergeant le point de terminaison.

  • Une classe de réponse unreachable indique qu'il est impossible d'atteindre le serveur de point de terminaison. Vérifiez que l'URL du point de terminaison ne contient pas de fautes de frappe.

Apprenez-en plus sur les codes d'erreur les plus courants de l'API Pub/Sub.

Restrictions concernant les abonnements push à l'intérieur d'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 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, des 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.