Risoluzione dei problemi generali

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 (non http:// o HTTPS://) come protocollo per l'URL di ricezione nel campo pushEndpoint.

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
}