Risoluzione dei problemi generali

Scopri i passaggi per la risoluzione dei problemi, utili in caso di problemi con 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, consulta gli argomenti per la risoluzione dei problemi e gli argomenti per la risoluzione dei problemi di importazione.

Impossibile creare una sottoscrizione

Verifica di aver eseguito 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) per il progetto. Se non hai questo ruolo, contatta l'amministratore.

  • È stato specificato un nome per la sottoscrizione.

  • È stato specificato il nome di un argomento esistente a cui vuoi collegare la sottoscrizione.

  • Se crei un abbonamento push, specifica https:// in minuscolo (non http:// o HTTPS://) come protocollo per l'URL di destinazione nel campo pushEndpoint.

Per ulteriori informazioni sulla risoluzione dei problemi relativi alle sottoscrizioni, consulta gli articoli 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 viene visualizzato 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 la comunicazione tra progetti.
  • Se utilizzi Dataflow, assicurati che sia {PROJECT_NUMBER}@cloudservices.gserviceaccount.com sia l'account di servizio Compute Engine {PROJECT_NUMBER}-compute@developer.gserviceaccount.com abbiano le autorizzazioni richieste per la risorsa dell'API Pub/Sub pertinente. Per ulteriori informazioni, consulta Sicurezza e autorizzazioni di Dataflow.
  • Se utilizzi App Engine, controlla la pagina Autorizzazioni del progetto per verificare se un account di servizio App Engine è elencato come editor. In caso contrario, aggiungi il tuo account di servizio App Engine come editor. Normalmente, l'account di servizio App Engine è nel formato <project-id>@appspot.gserviceaccount.com.

Utilizzare un numero eccessivo di operazioni amministrative

Se noti che stai utilizzando troppo della tua quota per le operazioni amministrative, potrebbe essere necessario eseguire il refactoring del codice. A titolo illustrativo, considera questo pseudo-codice. In questo esempio, un'operazione amministrativa (GET) viene utilizzata per verificare la presenza di una sottoscrizione prima di tentare di consumare le sue risorse. Sia GET che CREATE sono operazioni amministrative:

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

Un pattern più efficiente consiste nel provare a consumare i messaggi della sottoscrizione (supponendo che si possa essere ragionevolmente sicuri del nome della sottoscrizione). Con questo approccio ottimistico, ottieni o crei l'abbonamento 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
}