Chamar o Cloud Functions diretamente
Para dar suporte à iteração e depuração rápida, o Cloud Functions fornece um comando call
na interface da linha de comando e a funcionalidade de teste na IU do console do Google Cloud. 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
Primeira geração
Para invocar diretamente uma função de 1ª geração usando a CLI gcloud, use
o comando gcloud functions call
e forneça todos os dados esperados pela função
como JSON no argumento --data
. Exemplo:
gcloud functions call YOUR_FUNCTION_NAME --data '{"name":"Tristan"}'
em que YOUR_FUNCTION_NAME
é o nome da função que você quer executar. 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 em segundo plano, os dados são passados diretamente como os dados do evento para a função. Para mais informações sobre como acessar dados do evento nas funções em segundo plano, consulte Parâmetros da função em segundo plano.
- Para funções do CloudEvent, os dados são transmitidos diretamente como os dados do evento para a função. Para mais informações sobre como acessar dados do evento nas funções do CloudEvent, consulte Parâmetros de função do CloudEvent.
Segunda geração
Para invocar diretamente uma função de 2ª geração usando a CLI gcloud, use
a versão de 2ª geração do comando gcloud functions call
e forneça todos os dados
esperados pela função 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 região do Google Cloud 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 do CloudEvent, os dados são transmitidos diretamente como os dados do evento para a função. Para mais informações sobre como acessar dados do evento nas funções do CloudEvent, consulte Parâmetros de função do CloudEvent.
Para mais informações, consulte a documentação gcloud functions call
.
Testar a função com o Console do Google Cloud
Para invocar diretamente uma função pelo console do Google Cloud, siga estes passos:
Primeira geração
Clique no nome da função que você quer invocar.
Clique na guia Testes.
No campo Configurar evento acionador, insira todos os dados esperados pela função como JSON.
Clique em Testar a função.
A resposta da função é exibida no campo Saída, e os registros da execução individual aparecem no campo Registros.
Segunda geração
Na lista, clique no nome da função que você quer invocar. Isso leva você à página Detalhes da função.
Clique na guia Testes.
No campo Configurar evento acionador, insira todos os dados esperados pela função como JSON.
Clique nos botões +Adicionar parâmetro de consulta e +Adicionar parâmetro de cabeçalho para adicionar parâmetros de consulta e cabeçalho à chamada de função conforme necessário.
O console do Google Cloud monta os parâmetros que você especifica em um comando
gcloud functions call
na janela comando de teste da CLI.Selecione Executar no Cloud Shell para abrir uma janela do Cloud Shell e executar este comando.
Pressione Enter para acionar o comando
gcloud functions call
depois que ele aparecer na janela do Cloud Shell.
Exemplo de função orientada a eventos do Cloud Pub/Sub
Este exemplo mostra como invocar diretamente uma função orientada por eventos de 1ª geração 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.
Também é possível invocar a função do console do Google Cloud usando os mesmos dados de evento no campo Evento acionador.