Migrazione delle code in modalità pull a Pub/Sub

Questa pagina spiega come eseguire la migrazione del codice delle code in coda in modalità pull dalle code di attività a Pub/Sub. Pub/Sub è ora il modo preferito per eseguire il lavoro coda in modalità pull in App Engine.

Se la tua app utilizza sia code in modalità pull che code in modalità push, utilizza questa guida per eseguire la migrazione delle code in modalità pull a Pub/Sub prima di eseguire la migrazione delle code in modalità push al nuovo servizio Cloud Tasks per le coda in modalità push. La migrazione delle code in modalità pull dopo la migrazione delle code in modalità push a Cloud Tasks non è consigliata perché è probabile che l'utilizzo richiesto del file queue.yaml causi comportamenti imprevisti con Cloud Tasks.

Funzionalità attualmente non disponibili in Pub/Sub

Le seguenti funzionalità delle code di attività non sono attualmente disponibili in Pub/Sub:

  • Raggruppamento per tag
  • Deduplicazione automatica

Prezzi e quote

La migrazione delle code in modalità pull a Pub/Sub potrebbe influire sui prezzi e sulle quote della tua applicazione.

Prezzi

Pub/Sub ha i propri pricing. Come per le code di attività, l'invio di richieste alla tua app App Engine con Pub/Sub può comportare costi per la tua app.

Quote

Le quotas Pub/Sub sono diverse da quelle per le code di attività. Come per le code di attività, l'invio di richieste alla tua app App Engine da Pub/Sub potrebbe influire sulle quote per le richieste di App Engine.

Prima di eseguire la migrazione

Le seguenti sezioni descrivono i passaggi di configurazione prima di eseguire la migrazione delle code in modalità pull a Pub/Sub.

Abilitazione dell'API Pub/Sub

Per abilitare l'API Pub/Sub, fai clic su Abilita nell'API Pub/Sub nella libreria API. Se visualizzi un pulsante Gestisci invece di un pulsante Abilita, significa che hai precedentemente abilitato l'API Pub/Sub per il progetto e non è necessario farlo di nuovo.

Autenticazione dell'app nell'API Pub/Sub

Devi autenticare la tua app nell'API Pub/Sub. Questa sezione illustra l'autenticazione per due diversi casi d'uso.

Per sviluppare o testare la tua app a livello locale, ti consigliamo di utilizzare un account di servizio. Per istruzioni su come configurare un account di servizio e collegarlo alla tua app, leggi l'articolo Ottenere e fornire manualmente le credenziali dell'account di servizio.

Per eseguire il deployment della tua app su App Engine, non è necessario fornire alcuna nuova autenticazione. Le credenziali predefinite dell'applicazione (ADC) deducono i dettagli di autenticazione per le app App Engine.

Download di Google Cloud CLI

Scarica e installa Google Cloud CLI per utilizzare gcloud CLI con l'API Pub/Sub, se non l'hai ancora installata. Esegui questo comando dal terminale se hai già installato Google Cloud CLI.

gcloud components update

Importazione delle librerie client di Cloud

Segui le istruzioni di Pub/Sub per l'installazione della libreria client per utilizzare la libreria client con la tua app.

Code Pub/Sub e code in modalità pull

Confronto delle funzionalità

Pub/Sub invia il lavoro ai worker attraverso una relazione editore/sottoscrittore. Una sottoscrizione pull in Pub/Sub è come una coda in modalità pull nelle code di attività perché il sottoscrittore esegue il pull del messaggio dall'argomento. La tabella riportata di seguito elenca la funzionalità principale per le code in modalità pull nelle code di attività e la funzionalità associata per le sottoscrizioni pull in Pub/Sub.

Funzionalità code di attività Funzionalità Pub/Sub
Coda Argomento
Attività Messaggio
Worker Abbonato

Per ulteriori informazioni sull'architettura Pub/Sub, consulta Cloud Pub/Sub: un servizio di messaggistica su scala Google.

Confronto del flusso di lavoro

Di seguito è riportato un confronto tra un flusso di lavoro tipico per una coda in modalità pull nelle code di attività e una sottoscrizione pull in Pub/Sub.

Flusso di lavoro delle code di attività Flusso di lavoro Pub/Sub
Crei la coda in modalità pull Crei l'argomento e sottoscrivi l'abbonato (ossia il worker) all'argomento
Crei e accodi l'attività Crei il messaggio e lo pubblichi nell'argomento
Il worker prende in prestito l'attività Il sottoscrittore esegue il pull del messaggio dall'argomento
Il worker elabora l'attività Il sottoscrittore elabora il messaggio
Il worker elimina l'attività dalla coda Il sottoscrittore conferma il messaggio
Il lease scade L'argomento elimina il messaggio quando tutti i suoi sottoscrittori hanno confermato il messaggio

Creazione di sottoscrizioni pull in Pub/Sub

Puoi usare una sottoscrizione pull Pub/Sub, come una coda in modalità pull delle code di attività. Le sottoscrizioni a un argomento non scadono e possono esistere contemporaneamente per più worker. Ciò significa che un messaggio può essere elaborato da più di un worker, uno dei casi d'uso principali di Pub/Sub. Per ricreare le code di pull delle code di attività come sottoscrizioni pull di Pub/Sub, crea un argomento per ogni worker e sottoscrivi solo il worker associato all'argomento. Ciò garantisce che ogni messaggio venga elaborato da un solo worker come nelle code di attività. Per scoprire di più sulla creazione e la gestione delle sottoscrizioni pull, leggi l'articolo sulla gestione degli argomenti e delle sottoscrizioni.

Eliminazione delle code in modalità pull

Dopo aver eseguito la migrazione delle code di attività alle code in modalità pull di Pub/Sub, eliminale dalle code di attività utilizzando il file queue.yaml. Ti consigliamo di eliminare ogni coda in modalità pull prima di eseguire la migrazione di quella successiva. Ciò impedisce alla tua app di duplicare il lavoro che riceve dalla nuova sottoscrizione pull di Pub/Sub mentre esegui la migrazione delle altre code di pull. Tieni presente che l'eliminazione delle code di attività in modalità pull delle code una alla volta anziché in un singolo deployment potrebbe avere un effetto maggiore sulla quota di deployment di App Engine.

Dopo aver eliminato tutte le code in modalità pull dalle code di attività, puoi omettere il file queue.yaml dai deployment futuri dell'app.

Se la tua app utilizza solo code in modalità pull, rimuovi tutti i riferimenti all'API Tasks Queues nel codice. Se la tua app utilizza sia code in modalità pull sia code in push, puoi rimuovere i riferimenti all'API Task Queues presenti nei file che utilizzano solo code in modalità pull oppure attendere di avere eseguito anche la migrazione delle code in modalità push e poi rimuovere i riferimenti all'API Task Queues da tutti i file.

Passaggi successivi