Questa pagina spiega come eseguire la migrazione del codice coda di pull da code di attività a Pub/Sub. Pub/Sub è ora il modo preferito per eseguire le operazioni di coda in App Engine.
Se la tua app utilizza sia code in modalità pull sia code in modalità push, utilizza questa guida per eseguire la migrazione
delle code in modalità pull in Pub/Sub prima di eseguire la migrazione delle code in modalità push nel nuovo servizio Cloud Tasks per le code in modalità push. La migrazione delle code in modalità pull dopo la migrazione delle code in modalità push in Cloud Tasks non è consigliata perché l'utilizzo richiesto del file queue.yaml
potrebbe causare comportamenti imprevisti con Cloud Tasks.
Funzionalità attualmente non disponibili in Pub/Sub
Le seguenti funzionalità di 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 per la tua app.
Prezzi
Pub/Sub ha i propri prezzi. Come con le code di attività, l'invio di richieste alla tua app App Engine con Pub/Sub può causare all'app incorrere in costi.
Quote
Le quote Pub/Sub sono diverse da quelle per le code di attività. Come con le code di attività, l'invio di richieste alla tua app App Engine da Pub/Sub potrebbe influire sulle quote delle richieste di App Engine.
Prima della migrazione
In questa sezione vengono trattati gli argomenti che ti servono prima di eseguire la migrazione delle code di pull in Pub/Sub.
Abilitazione dell'API Pub/Sub in corso...
Per abilitare l'API Pub/Sub, fai clic su Abilita nell'API Pub/Sub nella libreria API. Se vedi un pulsante Gestisci invece di un pulsante Abilita, significa che hai precedentemente abilitato l'API Pub/Sub per il tuo progetto e non è necessario farlo di nuovo.
Autenticazione della tua app nell'API Pub/Sub
Devi autenticare la tua app nell'API Pub/Sub. Questa sezione tratta l'autenticazione per due diversi casi d'uso.
Per sviluppare o testare la tua app localmente, ti consigliamo di usare un account di servizio. Per istruzioni sulla configurazione di un account di servizio e sul collegamento alla tua app, leggi l'articolo Ottenere e fornire manualmente le credenziali per l'account di servizio.
Per eseguire il deployment della tua applicazione su App Engine, non è necessario fornire una nuova autenticazione. Le credenziali predefinite dell'applicazione (ADC) deduceno i dettagli dell'autenticazione per le app di App Engine.
Download di Google Cloud CLI
Scarica e installa Google Cloud CLI per utilizzare l'interfaccia a riga di comando gcloud con l'API Pub/Sub se non l'hai installata in precedenza. Esegui questo comando nel terminale se hai già installato Google Cloud CLI.
gcloud components update
Importazione della libreria client per Java
Segui le istruzioni Pub/Sub per l'installazione della libreria client per utilizzare la libreria client con l'app.Code Pub/Sub e pull
Confronto delle funzioni
Pub/Sub invia il lavoro ai worker attraverso una relazione di publisher/abbonato. Una sottoscrizione pull in Pub/Sub è come una coda di pull in code di attività perché il sottoscrittore estrae il messaggio dall'argomento. Nella tabella seguente sono elencate la funzionalità principale per le code pull nelle code di attività e la funzionalità associata per le sottoscrizioni pull in Pub/Sub.
Funzionalità delle code di attività | funzionalità Pub/Sub |
---|---|
Coda | Argomento |
Attività | Messaggio |
Worker | Abbonato |
Per ulteriori informazioni sull'architettura Pub/Sub, leggi Cloud Pub/Sub: A Google-Scale Messaging Service.
Confronto del flusso di lavoro
Di seguito è riportato un confronto tra un flusso di lavoro tipico per una coda pull in code di attività e una sottoscrizione pull in Pub/Sub.
Flusso di lavoro delle code di attività | Flusso di lavoro di Pub/Sub |
---|---|
Crei la coda di pull | Crei l'argomento e iscrivi il tuo abbonato (ovvero, lavoratore) all'argomento |
Tu crei e accodati l'attività | Crei il messaggio e lo pubblichi nell'argomento |
Il worker concede in leasing l'attività | Il sottoscrittore estrae il 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 lo hanno confermato |
Creazione di sottoscrizioni pull in Pub/Sub
Puoi utilizzare una sottoscrizione pull Pub/Sub come una coda di pull di code di attività. Le sottoscrizioni ad un argomento non scadono e possono esistere contemporaneamente per più worker. Ciò significa che un messaggio può essere elaborato da più di un worker, che è uno dei casi d'uso principali di Pub/Sub. Per ricreare le code di attività delle code in modalità pull/sottoscrizioni Pub/Sub, crea un argomento per ogni worker e iscriviti solo all'argomento per il worker associato. In questo modo ti assicuri che ogni messaggio venga elaborato da un solo worker come in Code di attività. Per scoprire di più sulla creazione e la gestione delle sottoscrizioni pull, leggi informazioni sulla gestione di argomenti e sottoscrizioni.
Eliminazione delle code in modalità pull
Dopo aver eseguito la migrazione delle code di attività nelle code in modalità pull in sottoscrizioni pull Pub/Sub, eliminale dalle code di attività utilizzando il tuo file queue.yaml
. Ti consigliamo di eliminare ogni coda di pull prima di eseguire la migrazione di quella successiva. Ciò impedisce alla tua app di duplicare il lavoro che riceve dalla nuova sottoscrizione pull Pub/Sub durante la migrazione delle altre code di pull. Tieni presente che l'eliminazione delle code di attività esegui una coda 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 nel codice eventuali riferimenti all'API Task Queues. Se la tua app utilizza sia code in modalità pull che code in modalità push, puoi rimuovere i riferimenti all'API Task Queues che si verificano nei file che utilizzano solo le code in modalità pull o attendere fino a quando non hai eseguito anche la migrazione delle code in modalità push e poi rimuovere i riferimenti all'API Task Queues da tutti i file.