Résoudre les problèmes de désencapsulation de la charge utile

Cette page explique comment résoudre les problèmes de désencapsulation de la charge utile.

Erreurs de code d'état HTTP

Lors de la désencapsulation de la charge utile, des erreurs courantes de code d'état HTTP peuvent se produire. Vous pouvez surveiller les erreurs avec la métrique push_request_count.

400 requête incorrecte

L'erreur suivante se produit lorsque Pub/Sub ne peut pas traiter la requête en raison d'une mauvaise configuration ou de données manquantes.

400 Bad Request

Cette erreur se produit pour plusieurs raisons. Voici quelques-unes des causes d'erreur les plus courantes:

  • La charge utile (données de message) ne correspond pas au format de requête attendu spécifié par le point de terminaison HTTP.
  • Il manque les en-têtes nécessaires au traitement de la requête.
  • Un point de terminaison HTTP incorrect a été configuré pour l'abonnement.

Pour résoudre ce problème, procédez comme suit :

  • Vérifiez le format de votre charge utile (données de message). Assurez-vous qu'il correspond au format de requête attendu spécifié par le point de terminaison HTTP.
  • Vérifiez que la requête contient les en-têtes requis. Si les en-têtes sont manquants, vous devrez peut-être les ajouter dans les attributs du message. Un exemple peut inclure Content-Type, mais d'autres peuvent également être nécessaires.
  • Vérifiez que le point de terminaison HTTP configuré pour votre abonnement est valide.
  • Activez la file d'attente de lettres mortes (DLQ) pour votre abonnement push. Cela redirige les messages individuels qui ne peuvent pas être distribués. Il est utile d'activer DLQ si vous souhaitez inspecter un petit nombre d'erreurs 400.

401 non autorisé / 403 interdit

L'erreur suivante se produit lorsque Pub/Sub ne peut pas traiter la requête en raison d'identifiants incorrects ou non valides.

401 unauthorized / 403 forbidden

Cette erreur se produit, car l'abonnement push n'est pas authentifié.

Pour résoudre ce problème, procédez comme suit :

  • Activez l'authentification push. L'utilisation de l'authentification push est importante si vous effectuez une intégration à Cloud Run ou App Engine.

    Si l'authentification push ne fonctionne pas avec votre solution, vous devrez peut-être ajouter votre propre clé d'autorisation ou clé API dans les attributs du message de publication.

415 Type de contenu non accepté

L'erreur suivante se produit lorsque Pub/Sub ne peut pas traiter la requête, car le format de la charge utile n'est pas pris en charge.

415 Unsupported Media Type

Cette erreur se produit pour plusieurs raisons. Voici quelques-unes des causes d'erreur les plus courantes:

  • Il manque l'en-tête de type média requis au point de terminaison.

Pour résoudre ce problème, essayez la solution suivante:

  • Votre point de terminaison nécessite probablement un en-tête Content-Type. Par défaut, la désencapsulation de la charge utile ne définit pas d'en-tête de type de support. Vous pouvez définir un en-tête Content-Type en le associant en tant qu'attribut de message de publication.

431 champs d'en-tête de requête trop volumineux / Contenu 413 trop volumineux

L'erreur suivante se produit lorsque Pub/Sub ne peut pas traiter la requête, car le contenu envoyé dans la requête est trop volumineux.

431 request header fields too Large / 413 content too large

Cette erreur se produit si les attributs d'un message Pub/Sub dépassent la taille maximale d'en-tête d'un serveur.

Pour résoudre ces problèmes, essayez les solutions suivantes:

  • Désactivez l'option Écrire les métadonnées.
  • Activez la file d'attente de lettres mortes (DLQ) pour votre abonnement push. Cela redirige les messages individuels qui ne peuvent pas être distribués. Ensuite, votre abonnement continue de fonctionner, mais les messages comportant des erreurs sont redirigés vers un sujet distinct pour une analyse plus approfondie.

Vérifier si la désencapsulation de la charge utile est activée

  1. Dans la console Google Cloud, accédez à la page Abonnements.

    Abonnements Pub/Sub ouverts

  2. Cliquez sur le nom de votre service.

    La page des détails du service s'ouvre.

  3. Dans la table de configuration, recherchez les valeurs suivantes: Message data unwrapping (Désencapsulation des données de message) et Write message metadata (Écrire les métadonnées du message).

    L'état de l'encapsulation de la charge utile (activé ou désactivé) s'affiche dans la ligne correspondante du tableau.

Étapes suivantes

  • Si vous rencontrez toujours des problèmes de désencapsulation de la charge utile, consultez la page Obtenir de l'aide.