Testar a função localmente
Este guia mostra como chamar localmente uma função do código-fonte
usando um comando gcloud functions
. Para saber como desenvolver e testar localmente uma função do Cloud Run usando o Functions Framework, consulte Desenvolvimento de funções locais.
Para oferecer suporte à iteração e depuração rápidas de funções criadas com a API Cloud Functions v2, use o comando call
na interface de linha de comando. Isso permite invocar diretamente uma função
para garantir que ela esteja se comportando conforme o esperado. Isso faz com que a função seja executada
imediatamente, mesmo que possa ter sido implantada para responder a um evento
específico.
Testar a função com a CLI do Google Cloud
Para invocar diretamente a função usando a gcloud CLI, use o
comando gcloud functions call
e forneça os dados que a função espera
como JSON no argumento --data
. Exemplo:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
Substitua:
- YOUR_FUNCTION_NAME: o nome da função que você está testando.
- REGION: a Google Cloud região em que a função é implantada
O argumento --data
é enviado para a função da seguinte maneira:
- Para funções HTTP, os dados fornecidos são enviados como o corpo de uma solicitação POST.
- Para funções orientadas a eventos,os dados são transmitidos diretamente como os dados do evento para a função.
Para mais informações, consulte a documentação gcloud functions call
.
Exemplo de função orientada a eventos do Cloud Pub/Sub
Este exemplo mostra como invocar diretamente uma função orientada a eventos ativada 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
. Ele funciona em ambientes Linux e Mac,
mas não no Windows.