Questo semplice tutorial mostra come scrivere, eseguire il deployment e attivare una funzione Cloud Run basata su eventi con un trigger Pub/Sub.
Se non hai mai utilizzato Pub/Sub e vuoi saperne di più, consulta la documentazione, in particolare la gestione di argomenti e sottoscrizioni. Consulta la sezione Trigger Pub/Sub per una panoramica dell'utilizzo di argomenti e sottoscrizioni Pub/Sub nelle funzioni Cloud Run.
Se stai cercando esempi di codice per utilizzare Pub/Sub, visita il browser degli esempi.
Preparazione della richiesta
Clona il repository dell'app di esempio sulla tua macchina locale:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
In alternativa, puoi scaricare il campione come file ZIP ed estrarlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
In alternativa, puoi scaricare il campione come file ZIP ed estrarlo.
Vai
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
In alternativa, puoi scaricare il campione come file ZIP ed estrarlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
In alternativa, puoi scaricare il campione come file ZIP ed estrarlo.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
In alternativa, puoi scaricare il campione come file ZIP ed estrarlo.
Passa alla directory che contiene il codice campione di Cloud Run Functions per accedere a Pub/Sub:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Vai
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/hello-pubsub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
Dai un'occhiata al codice campione:
Node.js
Python
Go
Java
Ruby
Deployment della funzione
Per il deployment della funzione con un trigger Pub/Sub, esegui questo comando
nella directory che contiene il codice campione (o, nel caso di Java, il
file pom.xml
):
Node.js
gcloud functions deploy helloPubSub \ --runtime nodejs22 \
--trigger-topic YOUR_TOPIC_NAME
Utilizza il flag --runtime
per specificare l'ID runtime di una versione di Node.js supportata per eseguire la funzione.
Python
gcloud functions deploy hello_pubsub \ --runtime python312 \
--trigger-topic YOUR_TOPIC_NAME
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione di Python supportata per eseguire
la funzione.
Vai
gcloud functions deploy HelloPubSub \ --runtime go121 \
--trigger-topic YOUR_TOPIC_NAME
Utilizza il flag --runtime
per specificare l'ID runtime di una versione di Go supportata per eseguire la funzione.
Java
gcloud functions deploy java-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_TOPIC_NAME
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione Java supportata per eseguire
la funzione.
Ruby
gcloud functions deploy hello_pubsub --runtime ruby33 \
--trigger-topic YOUR_TOPIC_NAME
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione di Ruby supportata per eseguire
la funzione.
dove YOUR_TOPIC_NAME
è il nome dell'argomento Pub/Sub a cui verrà sottoscritta la funzione.
Se YOUR_TOPIC_NAME
non esiste già, questo comando
lo crea per te. Puoi anche creare un argomento prima di eseguire il comando deploy
utilizzando la consoleGoogle Cloud o il seguente comando gcloud
:
gcloud pubsub topics create YOUR_TOPIC_NAME
Attivazione della funzione
Pubblica un messaggio nell'argomento Pub/Sub. In questo esempio, il messaggio è un nome che la funzione includerà in un saluto:
gcloud pubsub topics publish
YOUR_TOPIC_NAME
--messageYOUR_NAME
Sostituisci
YOUR_TOPIC_NAME
con il nome dell'argomento Pub/Sub eYOUR_NAME
con una stringa arbitraria.Controlla i log per assicurarti che le esecuzioni siano state completate:
gcloud functions logs read --limit 50
Puoi anche pubblicare un messaggio in un argomento Pub/Sub dall'interno di una funzione.