Skip to content

Latest commit

 

History

History
126 lines (78 loc) · 3.35 KB

2.2-Functions.md

File metadata and controls

126 lines (78 loc) · 3.35 KB

Cloud Functions

GoogleCloudPlatform4Noobs

Imagem da linguagem

Anterior | Próximo | Home

Descrição

O Cloud Functions é um serviço serverless, escalonável e de pagamento por utilização e execução, onde você não precisa gerenciar servidores. É perfeito para uma arquitetura de microserviços onde você tem um serviço leve e que execute rápido.

Você pode usá-lo para fazer deploy de uma função, como o nome diz. É possível fazer envio de emails, APIs REST, integrar com serviços de terceiros, IoT, etc. Tem suporte para as seguintes linguagens: Node.JS, Go, Python e Java.

Essa é a documentação oficial do Fuctions.

Código Exemplo

Usarei uma API que returna um Hello Heart escrito em Go, você pode vê-la aqui.

Você pode rodar o exemplo da seguinte forma:

go run hello-heart-rest.go

E acesse o endereço localhost:8080 no seu navegador.

Fazendo Deploy

Para usar o Functions, antes você deve ativar os serviços do Cloud Functions API e Cloud Build API no seu projeto:

gcloud services enable cloudfunctions.googleapis.com cloudbuild.googleapis.com

No código exemplo, pereca que o nome da função é HelloHeart. Esse será o nome da nossa functions.

package helloworld

import (
	"fmt"
	"net/http"
)

// HelloHeart is an HTTP Cloud Function.
func HelloHeart(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "Hello, He4rt!")
}

Vá até a pasta do seu código e rode o seguinte comando para fazer deploy:

gcloud functions deploy HelloHeart --runtime go111 --trigger-http --allow-unauthenticated

No parametro --runtime, depende da linguagem que você esta usando. Essas são as opções:

Nodejs:

  • nodejs10

  • nodejs12

Python:

  • python37

  • python38

Go:

  • go111

  • go113

O paramêtro --allow-unauthenticated permite que você acesse a função sem autenticação. Para exigir autenticação, remova o paramêtro.

Após rodar o comando, ele retornará um log dessa forma:

$ gcloud functions deploy HelloHeart --runtime go111 --trigger-http --allow-unauthenticated

Deploying function (may take a while - up to 2 minutes)...
done.

availableMemoryMb: 256
entryPoint: HelloHeart
httpsTrigger:
  url: https://us-central1-heart-exemplo.cloudfunctions.net/HelloHeart

Acesse essa URL no seu navegador e pronto! Seu código esta em produção.

Gerenciando dependências externas

Se você usa dependências externas, você pode fazer da seguinte forma:

Para Python, crie um arquivo requirements.txt com suas dependências. Você pode criar esse arquivo com o comando:

pip3 freeze > requirements.txt

Em Node.js, basta ter o package.json no mesmo diretório.

Em Go, basta ter o arquivo go.mod no mesmo diretório. Você pode crir esse arquivo com o comando:

go mod init hello-heart-rest.go

Deletando

Para deletar o projeto, rode o seguinte comando:

gcloud functions delete HelloHeart

No próximo capítulo vamos criar ver sobre Cloud Run.

Anterior | Próximo | Home