Sua primeira função: Go

Este guia explica o processo de criação de uma Cloud Function usando o ambiente de execução do Go. Há dois tipos de Cloud Functions:

  • Uma função HTTP, que você invoca a partir de solicitações HTTP padrão.
  • Uma função de segundo plano, usada para processar eventos da infraestrutura do Cloud, como mensagens em um tópico do Cloud Pub/Sub ou alterações em um intervalo do Cloud Storage.

O exemplo mostra como criar uma função HTTP simples.

Estrutura do guia

  1. Como criar um projeto do GCP usando o SDK do Cloud
  2. Como criar uma função
  3. Como especificar dependências
  4. Como implantar a função
  5. Como testar a função

Como criar um projeto do GCP usando o SDK do Cloud

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do GCP, na página do seletor de projetos, selecione ou crie um projeto do GCP.

    Acesse a página do seletor de projetos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform. Saiba como confirmar que o faturamento está ativado para seu projeto.

  4. Ative a(s) Cloud Functions API necessária(s).

    Ativar a(s) API

  5. Instale e inicialize o SDK do Cloud.
  6. Atualize e instale os componentes gcloud:
    gcloud components update
  7. Precisa de um prompt de comando? Use o Google Cloud Shell. O Google Cloud Shell é um ambiente de linha de comando que já inclui o SDK do Google Cloud. Dessa maneira, você não precisa instalá-lo. O SDK do Google Cloud também vem pré-instalado em máquinas virtuais do Google Compute Engine.

  8. Prepare seu ambiente de desenvolvimento.

    Acesse o guia de configuração do Go

Como criar uma função

  1. Crie um diretório no seu sistema local para o código de função:

    Linux ou Mac OS X

    mkdir ~/gcf_hello_world
    cd ~/gcf_hello_world
    

    Windows

    mkdir %HOMEPATH%\gcf_hello_world
    cd %HOMEPATH%\gcf_hello_world
    
  2. Crie um arquivo chamado hello_http.go no diretório gcf_hello_world com o seguinte conteúdo:

    
    // Package helloworld provides a set of Cloud Functions samples.
    package helloworld
    
    import (
    	"encoding/json"
    	"fmt"
    	"html"
    	"net/http"
    )
    
    // HelloHTTP is an HTTP Cloud Function with a request parameter.
    func HelloHTTP(w http.ResponseWriter, r *http.Request) {
    	var d struct {
    		Name string `json:"name"`
    	}
    	if err := json.NewDecoder(r.Body).Decode(&d); err != nil {
    		fmt.Fprint(w, "Hello, World!")
    		return
    	}
    	if d.Name == "" {
    		fmt.Fprint(w, "Hello, World!")
    		return
    	}
    	fmt.Fprintf(w, "Hello, %s!", html.EscapeString(d.Name))
    }
    

    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

Esta função de exemplo usa apenas pacotes da biblioteca padrão do Go. Assim, você não precisa declarar nenhuma dependência além de apenas importar os pacotes.

Para funções que exigem dependências fora da biblioteca padrão, é necessário fornecer as dependências por meio de um arquivo go.mod ou um diretório vendor. Para ver mais detalhes, leia Como especificar dependências no Go.

Como implantar a função

Para implantar a função com um acionador HTTP, execute o seguinte comando no diretório gcf_hello_world:

gcloud functions deploy HelloHTTP --runtime go111 --trigger-http

Como testar a função

  1. 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 HelloHTTP
    

    A aparência será semelhante a esta:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP
  2. Visite este URL em seu navegador ou use cURL executando o comando:

    curl https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP

    Você verá uma mensagem "Hello World!". Tente passar um nome na solicitação HTTP executando o seguinte comando:

    curl -X POST https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP -H "Content-Type:application/json"  -d '{"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 Stackdriver Logging e por meio da ferramenta de linha de comando gcloud.

Para ver os registros da função com a ferramenta gcloud, use o comando logs read, seguido pelo nome da função:

gcloud functions logs read HelloHTTP

A saída será semelhante a esta:

LEVEL  NAME        EXECUTION_ID  TIME_UTC                 LOG
D      HelloHTTP  buv9ej2k1a7r  2019-09-20 13:23:18.910  Function execution started
D      HelloHTTP  buv9ej2k1a7r  2019-09-20 13:23:18.913  Function execution took 4 ms, finished with status code: 200

Como usar o painel do Logging

Você também pode ver os registros do Cloud Functions no Console do Cloud.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Functions