Nesta página, explicamos como implantar aplicativos nas funções do Cloud Run usando o Cloud Build. Se você não estiver familiarizado com o Cloud Build, leia as guias de início rápido e a visão geral da configuração do Build primeiro.
O Cloud Run functions é um ambiente de execução sem servidor para criar e conectar serviços em nuvem, 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. A função é acionada quando um evento em análise é disparado. Para mais informações sobre as funções do Cloud Run, leia a documentação das funções do Cloud Run.
Antes de começar
Ative a API de funções do Cloud Run:
Conceda o papel de desenvolvedor do Cloud Run functions à conta de serviço de build:
Abra a página Configurações do Cloud Build:
Defina o status do papel Desenvolvedor das funções do Cloud Run como Ativo.
Para executar os comandos
gcloud
nesta página, instale a Google Cloud CLI.Tenha em mãos o código-fonte do aplicativo que você quer criar e implantar no Cloud Run functions. O código-fonte precisa ser armazenado em um repositório, como Cloud Source Repositories, GitHub ou Bitbucket.
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.
As funções do Cloud Run oferecem o comando gcloud functions deploy
, que
implanta a função do diretório que contém o código dela.
Você pode usar o
Imagem cloud-sdk
como uma etapa de build no arquivo de configuração para invocar comandos gcloud
na imagem.
Os argumentos transmitidos para essa etapa de build são transmitidos diretamente para a CLI do Google Cloud,
o que permite executar qualquer comando gcloud
nessa imagem.
Para implantar um aplicativo nas funções do Cloud Run, 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 das funções do Cloud Run 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 funções do Cloud Run. Para uma lista de regiões compatíveis, consulte Locais das funções do Cloud Run.--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 das funções do Cloud Run.- 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 build com suporte.
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
Para automatizar a implantação do seu software nas funções do Cloud Run, crie gatilhos do Cloud Build. Configure os acionadores para criar e implantar imagens sempre que atualizar o código-fonte.
Para automatizar sua implantação nas funções do Cloud Run:
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 das funções do Cloud Run 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 as funções do Cloud Run. Para uma lista de regiões compatíveis, consulte Locais das funções do Cloud Run.--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 Criar gatilho.
No campo Nome, insira um nome para o gatilho.
Em Região, selecione a região do gatilho.
Em Evento, selecione o evento do repositório para iniciar o gatilho.
Em Origem, selecione o repositório e o nome da ramificação ou da tag que iniciará o gatilho. Para mais informações sobre como especificar quais ramificações precisam ser criadas automaticamente, consulte Como criar um gatilho de compilação.
Em Configuração, selecione Cloud Build. arquivo de configuração (YAML ou JSON).
No campo local do arquivo de configuração do Cloud Build, digite
cloudbuild.yaml
depois do/
.Clique em Criar para salvar o gatilho de compilação.
Sempre que você enviar um novo código para o repositório, acionará automaticamente uma criar e implantar funções do Cloud Run.
Para mais informações sobre como criar gatilhos do Cloud Build, consulte Como criar e gerenciar gatilhos de build.
A seguir
- Saiba como realizar implantações azul-verde no Compute Engine.
- 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.