Ricezione di un evento Pub/Sub


Questa pagina del tutorial mostra come eseguire il deployment di un servizio Cloud Run non autenticato che riceve eventi utilizzando Pub/Sub.

Obiettivi

In questo tutorial, imparerai a:

  1. Eseguire il deployment di un servizio di ricezione di eventi in Cloud Run.

  2. Creare un attivatore di evento.

  3. Pubblicare un messaggio in un argomento Pub/Sub per generare un evento e visualizzarlo nei log di Cloud Run.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.

  4. Abilita le API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Abilita le API

  5. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.

  7. Abilita le API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Abilita le API

  8. Installa e inizializza Google Cloud CLI.
  9. Aggiorna i componenti gcloud:
    gcloud components update
  10. Accedi utilizzando il tuo account:
    gcloud auth login
  11. Imposta le variabili di configurazione utilizzate in questo tutorial:
    gcloud config set project PROJECT_ID
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
    
    Dove PROJECT_ID è il tuo ID progetto Google Cloud.

Esegui il deployment di un destinatario di eventi in Cloud Run

Eseguire il deployment di un servizio Cloud Run che riceve e registra gli eventi.

Per eseguire il deployment del servizio di ricezione di eventi di esempio:

  1. Clona il repository:

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

    Ruby

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git

    In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.

  2. Passa alla directory che contiene il codice campione di Cloud Run:

    Node.js

    cd nodejs-docs-samples/eventarc/pubsub/

    Python

    cd python-docs-samples/eventarc/pubsub/

    Go

    cd golang-samples/eventarc/pubsub/

    Java

    cd java-docs-samples/eventarc/pubsub/

    Ruby

    cd ruby-docs-samples/eventarc/pubsub/

    C#

    cd dotnet-docs-samples/eventarc/pubsub/
  3. Crea il container e caricalo su Cloud Build:

    gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
    
  4. Esegui il deployment dell'immagine container su Cloud Run:

    gcloud run deploy helloworld-events-pubsub-tutorial \
        --image gcr.io/$(gcloud config get-value project)/events-pubsub \
        --allow-unauthenticated
    

Quando vedi l'URL del servizio, il deployment è completato.

Crea un trigger Eventarc

L'attivatore di evento invia messaggi al servizio di ricezione eventi di cui è stato eseguito il deployment in Cloud Run quando un messaggio viene pubblicato nell'argomento Pub/Sub.

Per creare un trigger Pub/Sub Eventarc:

  1. Crea un trigger per ascoltare i messaggi Pub/Sub:

    Nuovo argomento Pub/Sub

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
    

    Viene creato un nuovo argomento Pub/Sub e viene attivato un trigger chiamato events-pubsub-trigger.

    Argomento Pub/Sub esistente

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID è il tuo ID progetto Google Cloud
    • TOPIC_NAME è il nome dell'argomento Pub/Sub esistente.

    Viene creato un trigger denominato events-pubsub-trigger per l'argomento Pub/Sub esistente.

  2. Verifica che l'attivatore sia stato creato correttamente:

    gcloud eventarc triggers list --location=us-central1
    
  3. Trova e imposta l'argomento Pub/Sub come variabile di ambiente:

    export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \
        --format='value(transport.pubsub.topic)')
    
  4. Invia un messaggio all'argomento Pub/Sub per generare un evento:

    gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
    

    L'evento viene inviato al servizio Cloud Run, che registra il messaggio dell'evento.

  5. Per visualizzare il messaggio dell'evento, vai ai log del servizio Cloud Run:

    1. Vai alla console Google Cloud
    2. Fai clic sul servizio helloworld-events-pubsub-tutorial.
    3. Seleziona la scheda Log.

      La visualizzazione dei log potrebbe richiedere alcuni istanti. Se non le vedi immediatamente, ricontrolla dopo qualche istante.

  6. Cerca il messaggio "Hello Runner!".

Esegui la pulizia

Se hai creato un nuovo progetto per questo tutorial, elimina il progetto. Se hai utilizzato un progetto esistente e vuoi mantenerlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina risorse tutorial

  1. Elimina il servizio Cloud Run di cui hai eseguito il deployment in questo tutorial:

    gcloud run services delete SERVICE_NAME

    Dove SERVICE_NAME è il nome del servizio che hai scelto.

    Puoi anche eliminare i servizi Cloud Run dalla console Google Cloud.

  2. Rimuovi le configurazioni predefinite dell'interfaccia a riga di comando gcloud aggiunte durante la configurazione del tutorial.

    Ad esempio:

    gcloud config unset run/region

    o

    gcloud config unset project

  3. Elimina altre risorse Google Cloud create in questo tutorial:

    • Elimina il trigger Eventarc:
      gcloud eventarc triggers delete TRIGGER_NAME
      
      Sostituisci TRIGGER_NAME con il nome del tuo attivatore.

Passaggi successivi