Découvrez les étapes de dépannage qui pourraient vous être utiles si vous exécutez des problèmes liés à l'utilisation de Pub/Sub.
Impossible de créer un sujet
Vérifiez que vous disposez
autorisations.
Pour créer un sujet Pub/Sub, vous avez besoin
Identity and Access Management de l'éditeur Pub/Sub (roles/pubsub.editor
)
ce rôle sur le projet. Si vous ne disposez pas de ce rôle, contactez votre administrateur.
Pour plus d'informations de dépannage
concernant des sujets,
Consultez la section Sujets de dépannage.
et Résoudre les problèmes liés à l'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 devez spécifier
https://
à l'étape inférieure. (pashttp://
niHTTPS://
) comme protocole pour l'URL de réception. dans le champpushEndpoint
.
Pour plus d'informations de dépannage sur les abonnements, consultez la section 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 demande dispose du rôle autorisations requises sur les aux ressources de l'API Pub/Sub, surtout si vous utilisez l'API Pub/Sub pour la communication entre projets.
Si vous utilisez Dataflow, assurez-vous que les deux
{PROJECT_NUMBER}@cloudservices.gserviceaccount.com
et le compte de service Compute Engine{PROJECT_NUMBER}-compute@developer.gserviceaccount.com
disposer des autorisations requises sur le compte ressource d'API Pub/Sub. Pour en savoir plus, consultez Sécurité et autorisations de DataflowSi 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
.
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. Dans cet exemple, une opération administrative (GET
)
est utilisé pour vérifier la présence d'un abonnement
de consommer 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 consommer les messages de l'abonnement (en supposant que vous puissiez être 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
}