Risoluzione dei problemi generali

Scopri i passaggi per la risoluzione dei problemi, utili se eseguissi in problemi nell'uso di Pub/Sub.

Impossibile creare un argomento

Verifica di disporre dei necessari autorizzazioni. Per creare un argomento Pub/Sub, devi disporre del ruolo Editor Pub/Sub (roles/pubsub.editor) di Identity and Access Management nel progetto. Se non hai questo ruolo, contatta l'amministratore. Per ulteriori informazioni sulla risoluzione dei problemi relativi agli argomenti, consulta Argomenti per la risoluzione dei problemi e Argomenti per la risoluzione dei problemi di importazione.

Impossibile creare una sottoscrizione

Verifica di aver effettuato le seguenti operazioni:

  • Verifica di disporre delle autorizzazioni necessarie. Per creare un abbonamento 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 lettere minuscole (non http:// o HTTPS://) come protocollo per l'URL di ricezione nel campo pushEndpoint.

Per ulteriori informazioni sulla risoluzione dei problemi relativi agli abbonamenti, consulta la sezione 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 agli abbonamenti a Cloud Storage.

403 (Forbidden) errore

Se ricevi questo errore, procedi nel seguente modo:

  • Assicurati di aver abilitato l'API Pub/Sub nella nella console Google Cloud.
  • Assicurati che l'entità che effettua la richiesta abbia autorizzazioni richieste sulla relativa le risorse dell'API Pub/Sub, soprattutto se usi l'API Pub/Sub per le comunicazioni tra progetti.

  • Se utilizzi Dataflow, assicurati che sia il servizio{PROJECT_NUMBER}@cloudservices.gserviceaccount.com {PROJECT_NUMBER}-compute@developer.gserviceaccount.com Dataflow sia l'account di servizio Compute Engine abbiano le autorizzazioni richieste per la risorsa API Pub/Sub pertinente. Per ulteriori informazioni, consulta Autorizzazioni e sicurezza di Dataflow.

  • Se utilizzi App Engine, controlla lo spazio dei nomi pagina Autorizzazioni per controllare se L'account di servizio App Engine è elencato come editor Pub/Sub. In caso contrario, aggiungi la tua app l'account di servizio del motore come editor Pub/Sub. In genere, il service account App Engine è del tipo <project-id>@appspot.gserviceaccount.com.

Utilizzo di quantità eccessive di operazioni amministrative

Se noti che stai utilizzando una quantità eccessiva della tua quota per le operazioni amministrative, potrebbe essere necessario eseguire il refactoring del codice. Come esempio, considera questo pseudocodice. In questo esempio, un'operazione amministrativa (GET) viene utilizzato per verificare la presenza di un abbonamento prima tenta di consumare le sue risorse. Sia GET sia CREATE sono operazioni di amministratore:

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

Un pattern più efficiente è provare a utilizzare i messaggi dell'abbonamento (supponendo che tu possa essere ragionevolmente certo del nome dell'abbonamento). In questo approccio ottimistico, l'abbonamento viene recuperato o creato solo se si verifica un errore. Considera questo esempio:

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