Dépannage d'ordre général

Découvrez les étapes de dépannage qui pourraient vous être utiles si vous rencontrez des problèmes lors de l'utilisation de Pub/Sub.

Impossible de créer un sujet

Vérifiez que vous disposez des autorisations nécessaires. Pour créer un sujet Pub/Sub, vous devez disposer du rôle IAM Éditeur Pub/Sub (roles/pubsub.editor) sur le projet. Si vous ne disposez pas de ce rôle, contactez votre administrateur. Pour plus d'informations de dépannage concernant les sujets, consultez Résoudre les problèmes liés aux sujets d'importation et Résoudre les problèmes liés à l'importation.

Impossible de créer un abonnement

Vérifiez que vous avez effectué les opérations suivantes:

  • Vérifiez que vous disposez des autorisations nécessaires. Pour créer un abonnement Pub/Sub, vous devez disposer du rôle IAM Éditeur Pub/Sub (roles/pubsub.editor) sur le projet. Si vous ne disposez pas de ce rôle, contactez votre administrateur.

  • Un nom a été spécifié pour l'abonnement.

  • Vous avez spécifié le nom d'un sujet existant auquel vous souhaitez associer l'abonnement.

  • Si vous créez un abonnement push, indiquez https:// en minuscules (et non http:// ou HTTPS://) comme protocole pour votre URL de réception dans le champ pushEndpoint.

Pour en savoir plus sur le dépannage des abonnements, consultez Résoudre les problèmes liés aux abonnements pull, Résoudre les problèmes liés aux abonnements push, Résoudre les problèmes liés aux abonnements BigQuery et Résoudre les problèmes liés aux abonnements Cloud Storage.

403 (Forbidden) erreur

Si vous rencontrez cette erreur, procédez comme suit :

  • Assurez-vous d'avoir activé l'API Pub/Sub dans la console Google Cloud.
  • Assurez-vous que le compte principal à l'origine de la requête dispose des autorisations requises sur les ressources de l'API Pub/Sub correspondantes, en particulier si vous utilisez l'API Pub/Sub pour communiquer entre plusieurs projets.
  • Si vous utilisez Dataflow, assurez-vous que {PROJECT_NUMBER}@cloudservices.gserviceaccount.com et le compte de service Compute Engine {PROJECT_NUMBER}-compute@developer.gserviceaccount.com disposent des autorisations requises sur la ressource d'API Pub/Sub correspondante. Pour en savoir plus, consultez la page Sécurité et autorisations de Dataflow.
  • Si vous utilisez App Engine, consultez la page Autorisations de votre projet pour savoir si un compte de service App Engine est répertorié en tant qu'éditeur. Si ce n'est pas le cas, ajoutez votre compte de service App Engine en tant qu'éditeur. Normalement, le compte de service App Engine est au format suivant : <project-id>@appspot.gserviceaccount.com.

Utiliser des opérations d'administration excessives

Si vous constatez que vous utilisez une trop grande partie de votre quota pour des opérations d'administration, vous devrez peut-être refactoriser votre code. À titre d'illustration, prenons ce pseudo-code. Dans cet exemple, une opération d'administration (GET) est utilisée pour vérifier la présence d'un abonnement avant qu'il ne tente d'utiliser ses ressources. GET et CREATE sont des opérations d'administration:

if !GetSubscription my-sub {
  CreateSubscription my-sub
}
Consume from subscription my-sub

Un modèle plus efficace consiste à essayer de consulter les messages de l'abonnement (en supposant que vous pouvez être raisonnablement sûr du nom de l'abonnement). Dans cette approche optimiste, vous n'obtenez ou ne créez l'abonnement qu'en cas d'erreur. Considérez l'exemple suivant :

try {
  Consume from subscription my-sub
} catch NotFoundError {
  CreateSubscription my-sub
  Consume from subscription my-sub
}