Criar e implantar uma função do Cloud em HTTP usando o Ruby
Este guia explica o processo de criação de uma função do Cloud usando o ambiente de execução do Ruby. Há dois tipos de Cloud Functions:
- Uma função HTTP, que você invoca a partir de solicitações HTTP padrão.
- Uma função direcionada a eventos, que você usa para processar eventos da infraestrutura do Cloud, como mensagens em um tópico do Cloud Pub/Sub ou alterações em um bucket do Cloud Storage.
O exemplo mostra como criar uma função HTTP simples.
.Estrutura do guia
- Como criar um projeto do GCP usando a CLI gcloud
- Como criar uma função
- Como especificar dependências
- Como criar e testar localmente
- Como implantar a função
- Como testar a função implantada
Como criar um projeto do GCP usando a CLI gcloud
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative as APIs Cloud Functions and Cloud Build.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative as APIs Cloud Functions and Cloud Build.
- Instale e inicialize a gcloud CLI.
- Atualize e instale os componentes
gcloud
:gcloud components update
- Prepare seu ambiente de desenvolvimento.
Como criar uma função
Crie um diretório no seu sistema local para o código de função:
Linux ou macOS
mkdir ~/helloworld cd ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crie um arquivo
app.rb
no diretóriohelloworld
com o seguinte conteúdo:Esse exemplo de função recebe um nome fornecido na solicitação HTTP e retorna uma saudação, ou "Hello World!", quando nenhum nome é fornecido.
Como especificar dependências
Dependências no Ruby são gerenciadas com o Bundler (em inglês) e expressas em um arquivo chamado
Gemfile
.
Quando você implanta a função, o Cloud Functions faz o download e instala as
dependências declaradas em Gemfile
e Gemfile.lock
usando bundler
.
O Gemfile
lista os pacotes exigidos pela função, além das restrições de versão opcionais. Para uma função do Cloud, um desses pacotes precisa ser o gem functions_framework
.
Neste exercício, crie um arquivo chamado Gemfile
no mesmo diretório que o
app.rb
que contém o código da função, com o seguinte conteúdo:
source "https://rubygems.org" gem "functions_framework", "~> 0.7"
Execute o seguinte comando para instalar o gem functions_framework
e outras
dependências:
bundle install
.
Como criar e testar localmente
Antes de implantar a função, é possível criá-la e testá-la localmente:
Execute o comando a seguir para usar o executável functions-framework-ruby
para
ativar um servidor da Web local que executa a função hello_http
:
bundle exec functions-framework-ruby --target hello_http
# ...starts the web server in the foreground
Se a função for criada com sucesso, ela exibirá o URL que você pode visitar no
navegador da Web para ver a função em ação:
http://localhost:8080/
. Você verá uma mensagem Hello World!
.
Como alternativa, envie solicitações para essa função usando curl
de outra
janela de terminal:
curl localhost:8080
# Output: Hello World!
Como implantar a função
Para implantar a função com um gatilho HTTP, execute o seguinte
comando no diretório helloworld
:
gcloud functions deploy hello_http --runtime ruby32 --trigger-http --allow-unauthenticated
A sinalização --allow-unauthenticated
permite que você atinja a função
sem autenticação.
Para exigir autenticação, omita a sinalização.
Como testar a função implantada
Quando a implantação da função estiver concluída, anote a propriedade
httpsTrigger.url
ou encontre-a usando o seguinte comando:gcloud functions describe hello_http
A aparência será semelhante a esta:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http
Visite este URL no navegador. Você verá uma mensagem "Hello World!".
Tente passar um nome na solicitação HTTP, por exemplo, usando este URL:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?name=NAME
Você verá uma mensagem "Hello
NAME
!"
Como visualizar registros
Como usar a ferramenta de linha de comando
Os registros do Cloud Functions são visíveis na IU do Cloud Logging e na Google Cloud CLI.
Para ver os registros da função com a ferramenta gcloud CLI, use o comando
logs read
, seguido pelo
nome da função:
gcloud functions logs read hello_http
A saída será semelhante a esta:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D helloHttp rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Como usar o painel do Logging
Também é possível ver os registros do Cloud Functions no console do Google Cloud.