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 CLI do Google Cloud.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.
Você pode usar a
imagem cloud-sdk
como uma etapa do build no arquivo de configuração para invocar os comandos gcloud
na imagem.
Os argumentos passados para essa etapa de build são transmitidos diretamente para a CLI do Google Cloud,
permitindo que você execute qualquer comando gcloud
nesta 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
. Para ver as opções de configuração disponíveis, consulte a referência dogcloud functions deploy
. --source=.
indica que o código-fonte está no diretório de trabalho atual.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:
FUNCTION_NAME
é o nome do Cloud Functions que você está implantando; Se você estiver atualizando uma função existente, esse valor precisará corresponder ao nome da função que você está atualizando.FUNCTION_REGION
é a região em que você está implantando o Cloud Functions. Para ver uma lista de regiões compatíveis, consulte Locais do Cloud Functions.--trigger-http
é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).RUNTIME
é o ambiente de execução em que a função será executada.
Para mais informações sobre como usar o
gcloud functions deploy
, consulte a documentação do Cloud Functions.- Adicione um campo
Inicie a compilação usando o arquivo de configuração criado na etapa anterior:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:
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.REGION
é uma das regiões de compilação compatíveis.
Se você não especificar
CONFIG_FILE_PATH
eSOURCE_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/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Substitua os valores de marcador no arquivo de configuração acima pelo seguinte:
FUNCTION_NAME
é o nome do Cloud Functions que você está implantando; Se você estiver atualizando uma função existente, esse valor precisará corresponder ao nome da função que você está atualizando.FUNCTION_REGION
é a região em que você está implantando o Cloud Functions. Para ver uma lista de regiões compatíveis, consulte Locais do Cloud Functions.--trigger-http
é o tipo de gatilho desta função. Neste caso, uma solicitação HTTP (webhook).RUNTIME
é o ambiente de execução em que a função será executada.
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: escolha o arquivo de configuração do 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.
- Saiba como resolver erros de build.