Testar a função localmente
Neste guia, você vai aprender a chamar uma função localmente 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 a função ser 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 está 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 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
. Ele funciona em ambientes Linux e Mac,
mas não no Windows.