Chamar funções do Cloud Run diretamente
Para oferecer suporte à iteração e depuração rápidas de funções criadas com a API Cloud Functions v2, as funções do Cloud Run fornecem um comando call
na interface da linha de comando. Isso permite invocar diretamente uma função para garantir que ela esteja se comportando conforme
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 do CloudEvent, 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 Cloud 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.