Probar una función localmente
.En esta guía se explica cómo llamar localmente a una función desde el código fuente mediante un comando gcloud functions
. Para saber cómo desarrollar y probar funciones de Cloud Run de forma local con el framework de Functions, consulta Desarrollo de funciones locales.
Para facilitar la iteración y la depuración de las funciones creadas con la API Cloud Functions v2, puedes usar el comando call
en la interfaz de línea de comandos. De esta forma, puedes invocar directamente una función para asegurarte de que se comporta como esperas. De esta forma, la función se ejecuta inmediatamente, aunque se haya desplegado para responder a un evento específico.
Probar la función con Google Cloud CLI
Para invocar directamente tu función mediante gcloud CLI, usa el comando gcloud functions call
y proporciona los datos que espere tu función como JSON en el argumento --data
. Por ejemplo:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
Sustituye:
- YOUR_FUNCTION_NAME: el nombre de la función que vas a probar
- REGION: la Google Cloud región en la que se ha desplegado tu función
El argumento --data
se envía a tu función de la siguiente manera:
- En el caso de las funciones HTTP, los datos que proporciones se enviarán como cuerpo de una solicitud POST.
- En el caso de las funciones basadas en eventos, los datos se transfieren directamente a tu función como datos de evento.
Para obtener más información, consulta la documentación de gcloud functions call
.
Ejemplo de función basada en eventos de Cloud Pub/Sub
En este ejemplo se muestra cómo invocar directamente una función basada en eventos activada por eventos de Pub/Sub:
Node.js
Python
Go
Java
C#
Ruby
PHP
Para invocar la función directamente, envía un
PubsubMessage
,
que espera datos codificados en base64, como datos de evento:
Node.js
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloPubSub --data '{"data":"'$DATA'"}'
Python
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
Go
DATA=$(printf 'Hello!'|base64) && gcloud functions call HelloPubSub --data '{"data":"'$DATA'"}'
Java
DATA=$(printf 'Hello!'|base64) && gcloud functions call java-hello-pubsub --data '{"data":"'$DATA'"}'
C#
DATA=$(printf 'Hello!'|base64) && gcloud functions call csharp-hello-pubsub --data '{"data":"'$DATA'"}'
Ruby
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
PHP
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloworldPubsub --data '{"data":"'$DATA'"}'
En este ejemplo de CLI se usa la sintaxis bash
o sh
. Funciona en entornos Linux y Mac, pero no en Windows.