En este instructivo sencillo, se muestra cómo escribir, implementar y activar una función de Cloud Run basada en eventos con un activador de Pub/Sub.
Si recién comienzas a usar Pub/Sub y quieres obtener más información, consulta la documentación de Pub/Sub, en particular, cómo administrar temas y suscripciones. Consulta Activadores de Pub/Sub para obtener una descripción general del trabajo con suscripciones y temas de Pub/Sub en las funciones de Cloud Run.
Si buscas muestras de código para usar Pub/Sub, visita el navegador de muestra.
Prepara la aplicación
Clona el repositorio de la app de muestra en tu máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.
Ve al directorio que contiene el código de muestra de funciones de Cloud Run para acceder a Pub/Sub:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/hello-pubsub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
Ve el código de muestra:
Node.js
Python
Go
Java
Ruby
Implementa la función
Para implementar la función con un activador de Pub/Sub, ejecuta el siguiente comando en el directorio que contiene el código de muestra (o en el caso de Java, el archivo pom.xml
):
Node.js
gcloud functions deploy helloPubSub \ --runtime nodejs22 \
--trigger-topic YOUR_TOPIC_NAME
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una versión compatible de Node.js para ejecutar la función.
Python
gcloud functions deploy hello_pubsub \ --runtime python312 \
--trigger-topic YOUR_TOPIC_NAME
Usa la marca --runtime
para especificar el ID de entorno de ejecución de una versión de Python compatible para ejecutar la función.
Go
gcloud functions deploy HelloPubSub \ --runtime go121 \
--trigger-topic YOUR_TOPIC_NAME
Usa la marca --runtime
para especificar el ID de entorno de ejecución de una versión de Go compatible para ejecutar tu función.
Java
gcloud functions deploy java-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_TOPIC_NAME
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una versión de Java compatible para ejecutar tu función.
Ruby
gcloud functions deploy hello_pubsub --runtime ruby33 \
--trigger-topic YOUR_TOPIC_NAME
Usa la marca --runtime
para especificar el ID de entorno de ejecución de una versión de Ruby compatible para ejecutar tu función.
En los ejemplos anteriores, YOUR_TOPIC_NAME
es el nombre del tema de Pub/Sub al que se suscribirá la función.
Si YOUR_TOPIC_NAME
aún no existe, este comando lo creará. También puedes crear un tema antes de ejecutar el comando deploy
, mediante la consola deGoogle Cloud o el siguiente comando de gcloud
:
gcloud pubsub topics create YOUR_TOPIC_NAME
Activa la función
Publica un mensaje en el tema de Pub/Sub. En este ejemplo, el mensaje es un nombre que la función incluirá en un saludo:
gcloud pubsub topics publish
YOUR_TOPIC_NAME
--messageYOUR_NAME
Reemplaza
YOUR_TOPIC_NAME
por el nombre de tu tema de Pub/Sub, yYOUR_NAME
por una string arbitraria.Revisa los registros para asegurarte de que las ejecuciones se completaron:
gcloud functions logs read --limit 50
También puedes publicar un mensaje en un tema de Pub/Sub desde una función.