arrow_back

Pub/Sub: Qwik Start - Python

Accedi Partecipa
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Pub/Sub: Qwik Start - Python

Lab 30 minuti universal_currency_alt 1 credito show_chart Introduttivi
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP094

Laboratori autogestiti Google Cloud

Panoramica

Il servizio Pub/Sub consente alle applicazioni di scambiare messaggi in modo affidabile, rapido e asincrono. A questo scopo, un publisher pubblica messaggi in un argomento Cloud Pub/Sub. Un client sottoscrittore crea quindi una sottoscrizione all'argomento e utilizza i messaggi della sottoscrizione. Cloud Pub/Sub conserva per un massimo di sette giorni i messaggi che non è stato possibile recapitare in modo affidabile.

In questo lab scoprirai come iniziare a pubblicare messaggi con Pub/Sub utilizzando la libreria client Python.

Attività previste

In questo lab imparerai a:

  • Conoscere le nozioni di base di Pub/Sub.
  • Creare, eliminare ed elencare argomenti e sottoscrizioni Pub/Sub.
  • Pubblicare messaggi in un argomento.
  • Utilizzare un sottoscrittore di tipo pull per inviare singoli messaggi all'argomento.

Configurazione e requisiti

Prima di fare clic sul pulsante Avvia lab

Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.

Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.

Per completare il lab, avrai bisogno di:

  • Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: utilizza una finestra del browser in incognito o privata per eseguire questo lab. Ciò evita eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
  • È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: se hai già un account o un progetto Google Cloud personale, non utilizzarlo per questo lab per evitare addebiti aggiuntivi al tuo account.

Come avviare il lab e accedere alla console Google Cloud

  1. Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Pulsante Apri console Google
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. Fai clic su Apri console Google. Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.

    Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.

    Note: se visualizzi la finestra di dialogo Scegli un account, fai clic su Utilizza un altro account.
  3. Se necessario, copia il Nome utente dal riquadro Dettagli lab e incollalo nella finestra di dialogo di accesso. Fai clic su Avanti.

  4. Copia la Password dal riquadro Dettagli lab e incollala nella finestra di dialogo di benvenuto. Fai clic su Avanti.

    Importante: devi utilizzare le credenziali presenti nel riquadro di sinistra. Non utilizzare le tue credenziali Google Cloud Skills Boost. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
  5. Fai clic nelle pagine successive:

    • Accetta i termini e le condizioni.
    • Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
    • Non registrarti per le prove gratuite.

Dopo qualche istante, la console Google Cloud si apre in questa scheda.

Nota: puoi visualizzare il menu con un elenco di prodotti e servizi Google Cloud facendo clic sul menu di navigazione in alto a sinistra. Icona menu di navigazione

Attiva Cloud Shell

Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Fai clic su Attiva Cloud Shell Icona Attiva Cloud Shell nella parte superiore della console Google Cloud.

Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.

  1. (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
  1. Fai clic su Autorizza.

  2. L'output dovrebbe avere ora il seguente aspetto:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project = <project_ID>

Output di esempio:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: per la documentazione completa di gcloud, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.

Attività 1: crea un ambiente virtuale

Gli ambienti virtuali Python vengono utilizzati per isolare l'installazione dei pacchetti dal sistema.

  1. Installa l'ambiente virtualenv:
sudo apt-get install -y virtualenv
  1. Crea l'ambiente virtuale:
python3 -m venv venv
  1. Attiva l'ambiente virtuale:
source venv/bin/activate

Attività 2: installa la libreria client

  1. Esegui questo comando per installare la libreria client:
pip install --upgrade google-cloud-pubsub
  1. Recupera il codice campione clonando un repository GitHub:
git clone https://github.com/googleapis/python-pubsub.git
  1. Vai alla directory:
cd python-pubsub/samples/snippets

Attività 3: apprendi le nozioni di base di Pub/Sub

Pub/Sub è un servizio di messaggistica asincrono globale. In Pub/Sub ricorrono spesso tre termini: argomento, pubblicare e sottoscrivere.

Un argomento è una stringa condivisa che consente alle applicazioni di connettersi tra loro tramite un thread comune.

I publisher eseguono il push di un messaggio (ossia, lo pubblicano) in un argomento di Pub/Sub. I sottoscrittori creano quindi una sottoscrizione al thread, in cui potranno eseguire il pull dei messaggi dall'argomento o configurare webhook per le sottoscrizioni di tipo push. Ogni sottoscrittore deve inviare un ACK per ciascun messaggio entro una finestra temporale configurabile.

Riepilogando, un publisher crea e invia messaggi in un argomento e un sottoscrittore crea una sottoscrizione a un argomento da cui ricevere i messaggi.

Pub/Sub su Google Cloud

Pub/Sub è preinstallato in Cloud Shell, pertanto non sono necessarie installazioni o configurazioni per iniziare a utilizzare questo servizio. In questo lab utilizzerai Python per creare l'argomento e la sottoscrizione e quindi visualizzare il messaggio. Utilizzerai un comando gcloud per pubblicare il messaggio nell'argomento.

Attività 4: crea un argomento

Per pubblicare i dati su Pub/Sub devi creare un argomento e quindi configurare un publisher in quell'argomento.

  1. In Cloud Shell, il tuo ID progetto deve essere automaticamente archiviato nella variabile di ambiente GOOGLE_CLOUD_PROJECT:
echo $GOOGLE_CLOUD_PROJECT
  1. Assicurati che l'output corrisponda all'ID progetto nei DETTAGLI DELLA CONNESSIONE.

publisher.py è uno script che dimostra come eseguire operazioni di base sugli argomenti con l'API Cloud Pub/Sub. Visualizza i contenuti dello script del publisher:

cat publisher.py Nota: in alternativa puoi utilizzare gli editor della shell installati su Cloud Shell, come nano o vim, oppure utilizzare l'editor di codice di Cloud Shell per visualizzare python-pubsub/samples/snippets/publisher.py.
  1. Per informazioni sullo script del publisher:
python publisher.py -h

Output di esempio:

utilizzo: publisher.py [-h] project {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} ... Questa applicazione dimostra come eseguire operazioni di base sugli argomenti con l'API Cloud Pub/Sub. Per ulteriori informazioni, vedi il file README.md in /pubsub e la documentazione all'indirizzo https://cloud.google.com/pubsub/docs. argomenti posizionali: project L'ID del progetto Google Cloud {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} list Visualizza un elenco di tutti gli argomenti Pub/Sub presenti nel progetto in questione. create Crea un nuovo argomento Pub/Sub. delete Elimina un argomento Pub/Sub esistente. publish Pubblica più messaggi in un argomento Pub/Sub. publish-with-custom-attributes Pubblica più messaggi con attributi personalizzati in un argomento Pub/Sub. publish-with-futures Pubblica più messaggi in un argomento Pub/Sub e visualizza i relativi ID. publish-with-error-handler Pubblica più messaggi in un argomento Pub/Sub con un gestore degli errori. publish-with-batch-settings Pubblica più messaggi in un argomento Pub/Sub con impostazioni batch. argomenti facoltativi: -h, --help Mostra questo messaggio della guida ed esce.
  1. Esegui lo script del publisher per creare l'argomento Pub/Sub:
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

Output di esempio:

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Verifica l'attività completata

Fai clic su Controlla i miei progressi per verificare l'attività eseguita. Se hai creato correttamente un argomento Cloud Pub/Sub, visualizzerai un punteggio di valutazione.

Crea un argomento.
  1. Il comando seguente restituisce un elenco di tutti gli argomenti Pub/Sub di un dato progetto:
python publisher.py $GOOGLE_CLOUD_PROJECT list

Output di esempio:

name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Puoi visualizzare l'argomento appena creato anche nella console Google Cloud.

  1. Vai a Menu di navigazione > Pub/Sub > Argomenti.

Dovrebbe essere visualizzato MyTopic.

Attività 5: crea una sottoscrizione

  1. Crea una sottoscrizione Pub/Sub per l'argomento con lo script subscriber.py:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

Verifica l'attività completata

Fai clic su Controlla i miei progressi per verificare l'attività eseguita. Se hai creato correttamente una sottoscrizione Cloud Pub/Sub, visualizzerai un punteggio di valutazione.

Crea una sottoscrizione.
  1. Il comando seguente restituisce un elenco dei sottoscrittori di un dato progetto:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

Verrà visualizzata una sola sottoscrizione perché è l'unica che hai creato.

Output di esempio:

projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
  1. Verifica nella console la sottoscrizione che hai appena creato. Nel riquadro a sinistra, fai clic su Sottoscrizioni. Dovresti vedere il nome della sottoscrizione e altri dettagli.

  2. Per visualizzare informazioni sullo script subscriber:

python subscriber.py -h

Output:

utilizzo: subscriber.py [-h] project {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} ... Questa applicazione dimostra come eseguire operazioni di base sulle sottoscrizioni con l'API Cloud Pub/Sub. Per ulteriori informazioni, vedi il file README.md in /pubsub e la documentazione all'indirizzo https://cloud.google.com/pubsub/docs. argomenti posizionali: project L'ID del progetto Google Cloud {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} list_in_topic Visualizza un elenco di tutte le sottoscrizioni per un determinato argomento. list_in_project Visualizza un elenco di tutte le sottoscrizioni presenti nel progetto corrente. create Crea una nuova sottoscrizione pull per l'argomento in questione. create-push Crea una nuova sottoscrizione push per l'argomento in questione. delete Elimina un argomento Pub/Sub esistente. update Aggiorna l'URL dell'endpoint associato al push di una sottoscrizione Pub/Sub esistente. Tieni presente che alcune proprietà di una sottoscrizione, come il suo argomento, non sono modificabili. receive Riceve i messaggi da una sottoscrizione pull. receive-custom-attributes Riceve i messaggi da una sottoscrizione pull. receive-flow-control Riceve i messaggi da una sottoscrizione pull con controllo del flusso. receive-synchronously Pull sincrono dei messaggi. listen_for_errors Riceve i messaggi e intercetta gli errori da una sottoscrizione pull. argomenti facoltativi: -h, --help Mostra questo messaggio della guida ed esce.

Attività 6: pubblica dei messaggi

Ora che hai configurato MyTopic (l'argomento) e una sottoscrizione a MyTopic (MySub), utilizza i comandi gcloud per pubblicare un messaggio in MyTopic.

  1. Pubblica il messaggio "Hello" in MyTopic:
gcloud pubsub topics publish MyTopic --message "Hello"
  1. Pubblica qualche altro messaggio in MyTopic: esegui questi comandi, sostituendo <YOUR NAME> con il tuo nome e <FOOD> con un alimento che ti piace:
gcloud pubsub topics publish MyTopic --message "Publisher's name is <YOUR NAME>" gcloud pubsub topics publish MyTopic --message "Publisher likes to eat <FOOD>" gcloud pubsub topics publish MyTopic --message "Publisher thinks Pub/Sub is awesome"

Attività 7: visualizza i messaggi

Ora che hai pubblicato i messaggi in MyTopic, esegui il pull e visualizzali utilizzando MySub.

  1. Utilizza MySub per eseguire il pull del messaggio da MyTopic:
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

Output di esempio:

Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub Received message: Message { data: 'Publisher thinks Pub/Sub is awesome' attributes: {} } Received message: Message { data: 'Hello' attributes: {} } Received message: Message { data: "Publisher's name is Harry" attributes: {} } Received message: Message { data: 'Publisher likes to eat cheese' attributes: {} }
  1. Fai clic su Ctrl+C per interrompere l'ascolto.

Attività 8: verifica le tue conoscenze

Di seguito, sono riportate alcune domande a scelta multipla che servono a consolidare le tue conoscenze relative ai concetti di questo lab. Rispondi alle domande al meglio delle tue capacità.

Complimenti!

Hai utilizzato Python per creare un argomento Pub/Sub, hai pubblicato nell'argomento, hai creato una sottoscrizione e quindi l'hai utilizzata per eseguire il pull dei dati dall'argomento.

Passaggi successivi/Scopri di più

Affiancando Pub/Sub, Pub/Sub Lite è un servizio di zona per sistemi di messaggistica con pattern di traffico prevedibili. Se pubblichi 1 MiB - 1 GiB di messaggi al secondo, Pub/Sub Lite è un'opzione a basso costo per l'importazione di eventi a volumi elevati. Prova Pub/Sub Lite con questo lab:

Questo lab fa parte di una serie chiamata Qwik Starts, pensata per offrirti un piccolo assaggio delle diverse funzionalità disponibili in Google Cloud. Cerca "Qwik Starts" nel catalogo di Google Cloud Skills Boost per trovare il prossimo lab da seguire.

Formazione e certificazione Google Cloud

… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.

Ultimo aggiornamento del manuale: 13 febbraio 2024

Ultimo test del lab: 22 settembre 2023

Copyright 2024 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.