En este instructivo simple, se muestra cómo escribir, implementar y activar una función de Cloud Functions en segundo plano con un activador de Cloud 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 Google Cloud Pub/Sub para obtener una descripción general del trabajo con suscripciones y temas de Pub/Sub en Cloud Functions.
Si buscas muestras de código para usar Pub/Sub, visita el navegador de muestra de Google Cloud.
Objetivos
- Escribir y, luego, implementar una función de Cloud Functions en segundo plano
- Activar la función mediante el envío de un mensaje a un tema de Pub/Sub
Costos
En este instructivo, se usan componentes facturables de Cloud Platform, incluidos los siguientes:
- Cloud Functions
- Pub/Sub
Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.
Los usuarios nuevos de Cloud Platform pueden optar por una prueba gratuita.Antes de comenzar
- Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Comprueba que la facturación esté habilitada en tu proyecto.
- Habilita las API de Cloud Functions and Cloud Pub/Sub.
- Instala e inicializa el SDK de Cloud.
- Prepara tu entorno de desarrollo.
Si ya tienes instalado el SDK de Cloud, ejecuta el siguiente comando para actualizarlo:
gcloud components update
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.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-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 Cloud Functions 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/
C#
cd dotnet-docs-samples/functions/helloworld/HelloPubSub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
Ve el código de muestra:
Node.js
Python
Go
Java
C#
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 nodejs10 \Puedes usar los siguientes valores para que la marca
--trigger-topic YOUR_TOPIC_NAME
--runtime
especifique tu versión preferida de Node.js:nodejs10
nodejs12
nodejs14
(vista previa pública)
Python
gcloud functions deploy hello_pubsub \ --runtime python38 \Puedes usar los siguientes valores para que la marca
--trigger-topic YOUR_TOPIC_NAME
--runtime
especifique tu versión preferida de Python:python37
python38
python39
(vista previa pública)
Comienza a usarlo
gcloud functions deploy HelloPubSub \ --runtime go113 \Puedes usar los siguientes valores en la marca
--trigger-topic YOUR_TOPIC_NAME
--runtime
para especificar tu versión preferida de Go:
go111
(obsoleta)go113
Java
gcloud functions deploy java-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java11 \ --memory 512MB \
--trigger-topic YOUR_TOPIC_NAME
C#
gcloud functions deploy csharp-pubsub-function \ --entry-point HelloPubSub.Function \ --runtime dotnet3 \
--trigger-topic YOUR_TOPIC_NAME
Ruby
gcloud functions deploy hello_pubsub --runtime ruby26 \Puedes usar los siguientes valores para que con la marca
--trigger-topic YOUR_TOPIC_NAME
--runtime
se especifique tu versión preferida de Ruby:
ruby26
ruby27
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 Cloud Console 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.
Realice una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, sigue estos pasos:
- En Cloud Console, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra la función de Cloud Functions
Borrar las funciones de Cloud Functions no quita ningún recurso almacenado en Cloud Storage.
Para borrar la función de Cloud Functions que creaste en este instructivo, ejecuta el siguiente comando:
Node.js
gcloud functions delete helloPubSub
Python
gcloud functions delete hello_pubsub
Go
gcloud functions delete HelloPubSub
Java
gcloud functions delete java-pubsub-function
C#
gcloud functions delete csharp-pubsub-function
Ruby
gcloud functions delete hello_pubsub
También puedes borrar funciones de Cloud Functions en Google Cloud Console.