Découvrez les étapes de dépannage qui pourraient vous être utiles si vous rencontrez des problèmes avec 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 Éditeur Pub/Sub (roles/pubsub.editor
) de Identity and Access Management sur le projet. Si vous ne disposez pas de ce rôle, contactez votre administrateur.
Pour plus d'informations sur le dépannage des sujets, consultez les pages Dépannage des sujets et Dépannage des sujets d'importation.
Impossible de créer un abonnement
Assurez-vous d'avoir 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.
Vous avez indiqué un nom 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, vous avez spécifié
https://
en minuscule (et nonhttp://
ouHTTPS://
) en tant que protocole pour votre URL de réception dans le champpushEndpoint
.
Pour en savoir plus sur le dépannage des abonnements, consultez les articles 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.
Vérifiez que le principal à l'origine de la requête dispose des autorisations requises sur les ressources de l'API Pub/Sub correspondantes, en particulier si vous vous servez de cette API 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 de l'API Pub/Sub appropriée. Pour en savoir plus, consultez la section Sécurité et autorisations pour Dataflow.Si vous utilisez App Engine, consultez la page des autorisations de votre projet pour savoir si un compte de service App Engine est répertorié en tant qu'éditeur Pub/Sub. Si ce n'est pas le cas, ajoutez votre compte de service App Engine en tant qu'éditeur Pub/Sub. Normalement, le compte de service App Engine est au format suivant :
<project-id>@appspot.gserviceaccount.com
.
Autres codes d'erreur courants
Pour obtenir la liste d'autres codes d'erreur courants liés à l'API Pub/Sub et leur description, consultez la section Codes d'erreur.
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, considérons ce pseudo-code. Ici, une opération d'administration (GET
) est utilisée pour vérifier la présence d'un abonnement avant toute tentative d'utilisation de 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 des messages de l'abonnement (en supposant que vous soyez suffisamment sûr du nom de l'abonnement). Dans cette approche optimiste, vous n'accédez à l'abonnement ou ne le créez 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
}