Teste a sua função localmente
Este guia mostra como chamar localmente uma função a partir do código fonte
usando um comando gcloud functions
. Para saber como desenvolver e testar localmente funções do Cloud Run com o Functions Framework, consulte o artigo Desenvolvimento local de funções.
Para suportar a iteração rápida e a depuração de funções criadas com a API Cloud Functions v2, pode usar o comando call
na interface de linhas de comando. Isto permite-lhe invocar diretamente uma função para garantir que está a funcionar conforme esperado. Isto faz com que a função seja executada imediatamente, mesmo que tenha sido implementada para responder a um evento específico.
Teste a sua função com a CLI do Google Cloud
Para invocar diretamente a sua função através da CLI gcloud, use o comando gcloud functions call
e forneça todos os dados que a sua função espera como JSON no argumento --data
. Por exemplo:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
Substituição:
- YOUR_FUNCTION_NAME: o nome da função que está a testar
- REGION: a Google Cloud região para a qual a sua função é implementada
O argumento --data
é enviado para a sua função da seguinte forma:
- Para funções HTTP, os dados que fornece são enviados como o corpo de um pedido POST.
- Para funções acionadas por eventos, os dados são transmitidos diretamente como os dados do evento para a sua função.
Para mais informações, consulte a documentação gcloud functions call
.
Exemplo de função orientada por eventos do Cloud Pub/Sub
Este exemplo mostra como invocar diretamente uma função orientada por eventos acionada por eventos do Pub/Sub:
Node.js
Python
Go
Java
C#
Ruby
PHP
Para invocar a função diretamente, envie um
PubsubMessage
,
que espera dados codificados em base64, como os dados do 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'"}'
Este exemplo da CLI usa a sintaxe bash
ou sh
. Funciona em ambientes Linux e Mac, mas não no Windows.