O Cloud Functions é um ambiente de execução sem servidor para criar e conectar serviços em nuvem. Com ele, é possível escrever funções simples de única finalidade que são vinculadas a eventos emitidos pela infraestrutura e pelos serviços em nuvem. A função é acionada quando um evento em análise é disparado. Para mais informações sobre o Cloud Functions, leia a documentação do Cloud Functions.
Antes de começar
Ative a API Cloud Functions:
Conceda o papel Desenvolvedor do Cloud Functions à conta de serviço do Cloud Build:
Abra a página Configurações do Cloud Build:
Defina o status do papel Desenvolvedor do Cloud Functions como Ativo.
Para executar os comandos
gcloud
desta página, instale a ferramenta de linha de comandogcloud
.Tenha em mãos o código-fonte do aplicativo que você quer compilar e implantar no Cloud Functions.
Como configurar a implantação
O Cloud Build permite que você use qualquer imagem de contêiner disponível publicamente para executar suas tarefas. Para fazer isso, especifique a imagem em uma step
de build no arquivo de configuração do Cloud Build.
O Cloud Functions oferece o comando gcloud functions deploy
, que implanta a função do diretório que contém o código dela.
Use a imagem gcloud
como uma etapa de build no arquivo de configuração para invocar os comandos gcloud
na imagem.
Os argumentos inseridos nessa etapa de compilação transmitidos diretamente para a ferramenta gcloud
, o que permite executar qualquer comando gcloud
nessa imagem.
Para implantar um aplicativo no Cloud Functions, siga estas etapas:
- No diretório raiz do projeto, crie o arquivo de configuração do Cloud Build chamado
cloudbuild.yaml
oucloudbuild.json
. No arquivo de configuração:
- Adicione um campo
name
e especifique a etapa de criaçãogcloud
. - Adicione
functions deploy
ao campoargs
para invocar o comandogcloud functions deploy
. --source=.
indica que o código-fonte está no diretório de trabalho atual.
YAML
steps: - name: 'gcr.io/cloud-builders/gcloud' args: - functions - deploy - [FUNCTION_NAME] - --source=. - --trigger-http
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/gcloud", "args": [ "functions", "deploy", [ "FUNCTION_NAME" ], "--source=.", "--trigger-http" ] } ] }
Em que:
[FUNCTION_NAME]
é o nome do Cloud Functions que você está implantando;--trigger-http
é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).
Para mais informações sobre como usar o
gcloud functions deploy
, consulte a documentação do Cloud Functions.- Adicione um campo
Inicie a build usando o arquivo de configuração criado na etapa anterior:
gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
Em que:
[CONFIG_FILE_PATH]
é o caminho para o arquivo de configuração da compilação;[SOURCE_DIRECTORY]
é o caminho ou o URL do código-fonte.
Se você não especificar
[CONFIG_FILE_PATH]
e[SOURCE_DIRECTORY]
no comandogcloud builds submit
, o Cloud Build presumirá que o arquivo de configuração e o código-fonte estão no diretório de trabalho atual.
Implantação contínua
É possível automatizar a implantação do software no Cloud Functions criando gatilhos do Cloud Build. Configure os acionadores para criar e implantar imagens sempre que atualizar o código-fonte.
Para automatizar a implantação no Cloud Functions:
Na raiz do repositório, adicione um arquivo de configuração com etapas para invocar o comando
gcloud functions deploy
:YAML
steps: - name: 'gcr.io/cloud-builders/gcloud' args: - functions - deploy - [FUNCTION_NAME] - --source=. - --trigger-http
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/gcloud", "args": [ "functions", "deploy", [ "FUNCTION_NAME" ], "--source=.", "--trigger-http" ] } ] }
Em que:
[FUNCTION_NAME]
é o nome do Cloud Functions que você está implantando;--trigger-http
é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).
Crie um gatilho de compilação com o arquivo de configuração criado na etapa anterior:
Abra a página Gatilhos no Console do Google Cloud:
Selecione o projeto no menu suspenso do seletor de projetos na parte superior da página.
Clique em Abrir.
Clique em Criar gatilho.
Na página Criar gatilho, especifique as seguintes configurações:
Insira um nome para o gatilho.
Selecione o evento de repositório para iniciar o gatilho.
Selecione o repositório que contém o código-fonte e o arquivo de configuração de build.
Especifique o regex do nome da ramificação ou da tag que iniciará o gatilho.
Configuração de build: escolha o arquivo de configuração de build que você criou anteriormente.
Clique em Criar para salvar o gatilho de compilação.
A qualquer momento que você enviar um novo código ao repositório, acionará automaticamente uma build e implantará no Cloud Functions.
Para mais informações sobre como criar gatilhos do Cloud Build, consulte Como criar e gerenciar gatilhos de build.
A seguir
- Saiba como implantar no Cloud Run.
- Saiba como implantar no GKE.
- Saiba como implantar no Firebase.
- Saiba como implantar no App Engine.