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

Cette page explique comment résoudre les problèmes liés au déballage 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 à l'aide de la métrique push_request_count.

400 Bad Request

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 est 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'elle correspond au le 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. Content-Type peut être un exemple, 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). de votre abonnement push. Cette opération redirige les messages individuels qui ne peuvent pas être distribués. Il est utile d'activer la file d'attente de diffusion si vous constatez un petit nombre d'erreurs 400 que vous souhaitez inspecter.

401 Unauthorized (Opération non autorisée)/403 Forbidden (Accès 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. Utiliser le mode Push l'authentification 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 pour ajouter votre propre clé d'autorisation ou clé d'API dans les attributs de publication du message.

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 :

  • L'en-tête "media-type" obligatoire est manquant dans le 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, le déballage de la charge utile ne définit pas d'en-tête de type multimédia. Toi vous pouvez définir un en-tête Content-Type en le joignant en tant qu'attribut de message de publication.

431 request header fields too large / 413 content too large

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 Pub/Sub message dépassent la taille limite d'en-tête d'un Google Cloud.

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) sur votre abonnement push. Cela redirige les messages individuels qui ne peuvent pas être livrés. Ensuite, votre abonnement continue de fonctionner, mais les messages contenant 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.

    Ouvrir les abonnements Pub/Sub

  2. Cliquez sur le nom de votre service.

    La page d'informations sur le service s'ouvre.

  3. Dans le tableau de configuration, recherchez les valeurs suivantes: Données des messages unwrapping et Write message metadata (Écrire les métadonnées des messages).

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

Étape suivante