Primeiros passos com o Cloud Functions

1. Visão geral

Cloud-Functions.png

Com ele, você pode escrever funções simples com uma única finalidade e vinculadas a eventos emitidos pela sua infraestrutura e pelos serviços em nuvem. Sua Função do Cloud é acionada quando um evento em análise é disparado. Seu código pode ser executado em um ambiente totalmente gerenciado. Não é necessário provisionar infraestruturas ou se preocupar com gerenciamento de servidores.

No momento, o Cloud Functions pode ser escrito em JavaScript, Python ou Go. No caso do JavaScript, eles são executados em um ambiente Node.js no Google Cloud Platform. Use essas funções em qualquer ambiente Node.js padrão para simplificar a portabilidade e os testes locais.

Conectar e estender serviços do Cloud

O Cloud Functions fornece uma camada de lógica que permite conectar e estender os serviços em nuvem por meio de código. Detecte e responda a um upload de arquivo para o Cloud Storage, uma alteração de registro ou uma mensagem recebida em um tópico do Cloud Pub/Sub. O Cloud Functions expande os serviços em nuvem existentes e permite atender a um número crescente de casos de uso com lógica de programação arbitrária. As Funções do Cloud têm acesso a credenciais de contas de serviço do Google e, assim, são autenticadas facilmente na maioria dos serviços do Google Cloud Platform, como Datastore, Cloud Spanner, Cloud Translation API e API Cloud Vision, entre outros.

907ffb96feada611.png

Eventos e gatilhos

Eventos de nuvem são situações que ocorrem no seu ambiente de nuvem.Podem ser alterações de dados em um banco de dados, a adição de arquivos a um sistema de armazenamento ou a criação de uma nova instância de máquina virtual.

Os eventos ocorrem mesmo que você responda ou não a eles. Você cria uma resposta para um evento com um gatilho. Ele é uma declaração de que você tem interesse em um determinado evento ou grupo de eventos. Vincular uma função a um gatilho permite que você capture e interaja com os eventos. Para mais informações sobre como criar gatilhos e associá-los a funções, consulte Eventos e gatilhos.

Sem servidor

Com o Cloud Functions, você não precisa gerenciar servidores, configurar software, atualizar frameworks e fazer patch de sistemas operacionais. Como o software e a infraestrutura são totalmente gerenciados pelo Google, você precisa apenas adicionar o código. Além disso, o provisionamento de recursos ocorre automaticamente em resposta aos eventos. Isso significa que uma função pode processar de poucas invocações por dia a muitos milhões sem que você precise fazer nada.

Casos de uso

Agora não é mais necessário ter um servidor e um desenvolvedor dedicados para lidar com cargas de trabalho assíncronas, como ETL leve, ou automações de nuvem, como acionamento de versões de aplicativos. Basta implantar uma Função do Cloud vinculada ao evento desejado e pronto.

Devido à natureza detalhada e sob demanda do Cloud Functions, ele também é a ferramenta ideal para APIs leves e webhooks. Além disso, com o provisionamento automático dos endpoints HTTP, quando você implanta uma função HTTP, não é preciso fazer alterações complicadas nas configurações, assim como ocorre em outros serviços.

Neste laboratório prático, você aprenderá a criar, implantar e testar funções de nuvem usando o console do Google Cloud. Você vai :

  • Criar uma Função do Cloud
  • Implementar e testar a função
  • Ver registros

2. Configuração e requisitos

Configuração de ambiente autoguiada

  1. Faça login no Console do Cloud e crie um novo projeto ou reutilize um existente. Crie uma se você ainda não tiver uma conta do Gmail ou do G Suite.

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.

  1. Em seguida, será necessário ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.

A execução deste codelab não será muito cara, se for o caso. Siga todas as instruções na seção "Limpeza", que orienta você sobre como encerrar recursos para não incorrer em cobranças além deste tutorial. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.

Google Cloud Shell

Embora o Google Cloud e o Cloud Functions possam ser operados remotamente do seu laptop, neste codelab vamos usar o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.

O Cloud Shell é uma máquina virtual com base em Debian que contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Isso significa que tudo que você precisa para este codelab é um navegador (sim, funciona em um Chromebook).

  1. Para ativar o Cloud Shell no Console do Cloud, basta clicar em Ativar o Cloud Shell fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q. Leva apenas alguns instantes para provisionar e se conectar ao ambiente.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 às 10.13.43 PM.png

Depois de se conectar ao Cloud Shell, você já estará autenticado e o projeto estará configurado com seu PROJECT_ID.

gcloud auth list

Resposta ao comando

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Resposta ao comando

[core]
project = <PROJECT_ID>

Se, por algum motivo, o projeto não estiver definido, basta emitir o seguinte comando:

gcloud config set project <PROJECT_ID>

Quer encontrar seu PROJECT_ID? Veja qual ID você usou nas etapas de configuração ou procure-o no painel do Console do Cloud:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

O Cloud Shell também define algumas variáveis de ambiente por padrão, o que pode ser útil ao executar comandos futuros.

echo $GOOGLE_CLOUD_PROJECT

Resposta ao comando

<PROJECT_ID>
  1. Defina a zona padrão e a configuração do projeto:
gcloud config set compute/zone us-central1-f

É possível escolher uma variedade de zonas diferentes. Para mais informações, consulte Regiões e zonas.

3. Criar uma função

Nesta etapa, você criará uma Função do Cloud usando o console.

  • No console, clique no menu de navegação > Cloud Functions.

fe64222954f5f372.png

  • Clique em "CREATE FUNCTION" :

7adca9640ca2e5a6.png

  • Nomeie sua função como GCFunction e mantenha os outros padrões : alocação de memória, HTTP como acionador, editor in-line, ambiente de execução padrão e exemplo de código padrão.

795f1fedc0f039bb.png

  • Ainda na função "criar função" clique em "Criar" na parte inferior para implantar a função:

b68c3647b771e6f9.png

Depois de clicar em "Criar", o console vai redirecionar você para a página "Visão geral do Cloud Functions".

Enquanto a função é implantada, o ícone ao lado dela fica girando. Quando o processo terminar, o ícone mudará para uma marca de seleção verde. Se houver algum problema, você será notificado com um ícone vermelho e um link para os registros para entender o que deu errado (provavelmente um problema no seu código).

3ec684b1b4906657.png

Pronto! A função agora está ativa e pronta para ser acionada via HTTP.

4. Testar a função

Na página "Visão geral do Cloud Functions", exiba o menu da função e clique em Testar função :

74e310ee6663bb3c.png

No campo "Evento acionador", digite o seguinte texto entre colchetes {} e clique em Testar a função.

No campo Saída, você verá a mensagem Sucesso: Hello World!

No campo Registros, um código de status 200 indica êxito. Pode levar até um minuto para que os registros apareçam.

a876def9cbf24a45.png

5. Ver os registros da função

Clique na seta azul para voltar à página "Visão geral do Cloud Functions":

8917a2bfa4fb9502.png

Exiba o menu da sua função e clique em Ver registros :

e97e6ec1fc17dfd7.png

Aqui está um exemplo do histórico de registros :

d91a00cf4457fa84.png

É possível filtrar os registros por função e por gravidade e pesquisar usando um rótulo ou texto em formato livre.

Seu aplicativo está implantado e testado, e você conseguiu acessar os registros.

6. Limpar recursos

Como isso é uma computação sem servidor, você não precisa limpar os recursos : escalonar para zero significando também escalonar o custo para zero. Portanto, se a função não estiver recebendo tráfego, não haverá custos. Além disso, as primeiras 2 milhões de invocações do Cloud Functions são sem custo financeiro. Confira mais detalhes na página de preços.

Se deseja excluir a função, vá para a página de visão geral, selecione a função e clique em EXCLUIR :

4fe11e1b41b32ba2.png

7. A seguir

O Cloud Functions tem muito mais para você! Confira outros codelabs, a página do produto e a documentação relacionada.

Você também deve conferir o seguinte :