Scopri i passaggi per la risoluzione dei problemi, utili in caso di problemi nell'utilizzo di Pub/Sub.
Impossibile creare un argomento
Verifica di disporre delle autorizzazioni necessarie. Per creare un argomento Pub/Sub, devi disporre del ruolo IAM Editor Pub/Sub (roles/pubsub.editor
) nel progetto. Se non hai questo ruolo, contatta l'amministratore. Per ulteriori informazioni sulla risoluzione dei problemi relativi agli argomenti, vedi Argomenti relativi alla risoluzione dei problemi e Risoluzione dei problemi relativi agli argomenti di importazione.
Impossibile creare una sottoscrizione
Verifica di aver effettuato le seguenti operazioni:
Verifica di disporre delle autorizzazioni necessarie. Per creare una sottoscrizione Pub/Sub, devi disporre del ruolo IAM Editor Pub/Sub (roles/pubsub.editor) nel progetto. Se non hai questo ruolo, contatta l'amministratore.
Specificava un nome per l'abbonamento.
Specifica il nome di un argomento esistente a cui vuoi collegare la sottoscrizione.
Se crei una sottoscrizione push, specifica
https://
in minuscolo (nonhttp://
oHTTPS://
) come protocollo per l'URL di ricezione nel campopushEndpoint
.
Per ulteriori informazioni sulla risoluzione dei problemi relativi alle sottoscrizioni, consulta Risoluzione dei problemi relativi alle sottoscrizioni pull, Risoluzione dei problemi relativi alle sottoscrizioni push, Risoluzione dei problemi relativi alle sottoscrizioni BigQuery e Risoluzione dei problemi relativi alle sottoscrizioni Cloud Storage.
403 (Forbidden)
errore
Se visualizzi questo errore:
- Assicurati di aver abilitato l'API Pub/Sub nella console Google Cloud.
- Assicurati che l'entità che effettua la richiesta disponga delle autorizzazioni richieste sulle risorse dell'API Pub/Sub pertinenti, soprattutto se utilizzi l'API Pub/Sub per le comunicazioni tra progetti.
- Se utilizzi Dataflow, assicurati che sia
{PROJECT_NUMBER}@cloudservices.gserviceaccount.com
sia l'account di servizio di Compute Engine{PROJECT_NUMBER}-compute@developer.gserviceaccount.com
dispongano delle autorizzazioni richieste sulla risorsa dell'API Pub/Sub pertinente. Per ulteriori informazioni, consulta Sicurezza e autorizzazioni di Dataflow. - Se utilizzi App Engine, controlla la pagina Autorizzazioni del tuo progetto per verificare se un account di servizio App Engine è elencato come Editor. In caso contrario, aggiungi l'account di servizio App Engine come editor. Solitamente, il formato dell'account di servizio App Engine è
<project-id>@appspot.gserviceaccount.com
.
Utilizzo di un numero eccessivo di operazioni amministrative
Se ti accorgi di utilizzare troppa quota per le operazioni amministrative, potresti dover eseguire il refactoring del codice. A titolo illustrativo, considera questo pseudo-codice. In questo esempio, viene utilizzata un'operazione amministrativa (GET
) per verificare la presenza di un abbonamento prima di tentare di utilizzare le risorse. Sia GET
che CREATE
sono operazioni amministrative:
if !GetSubscription my-sub {
CreateSubscription my-sub
}
Consume from subscription my-sub
Un pattern più efficiente è provare a consumare i messaggi della sottoscrizione (supponendo di poter essere ragionevolmente sicuro del nome della sottoscrizione). Con questo approccio ottimistico, ottieni o crei l'abbonamento solo in caso di errore. Considera questo esempio:
try {
Consume from subscription my-sub
} catch NotFoundError {
CreateSubscription my-sub
Consume from subscription my-sub
}