Esta página explica como implementar aplicações em funções do Cloud Run através do Cloud Build. Se for um utilizador recente do Cloud Build, leia os inícios rápidos e a vista geral da configuração de compilação primeiro.
As funções do Cloud Run são um ambiente de execução sem servidor para criar e ligar serviços na nuvem. Com as funções do Cloud Run, escreve funções simples de finalidade única que estão associadas a eventos emitidos a partir da sua infraestrutura e serviços na nuvem. A sua função é acionada quando é acionado um evento que está a ser monitorizado. 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 Cloud Run Functions:
Conceda a função de programador de funções do Cloud Run à conta de serviço do Cloud Build:
-
Na Google Cloud consola, aceda à página settings Autorizações do Cloud Build:
Defina o estado da função Programador de funções do Cloud Run como Ativado.
-
Para executar os comandos
gcloud
nesta página, instale a CLI do Google Cloud.Tenha à mão o código fonte da aplicação que quer criar e implementar nas funções do Cloud Run. O código fonte tem de estar armazenado num repositório, como os Cloud Source Repositories, o GitHub ou o Bitbucket.
Configurar a implementação
O Cloud Build permite-lhe usar qualquer imagem de contentor disponível publicamente para executar as suas tarefas. Pode fazê-lo especificando a imagem numa compilação step
no ficheiro de configuração do Cloud Build.
As funções do Cloud Run fornecem o comando gcloud functions deploy
, que implementa a sua função a partir do diretório que contém o código da função.
Pode usar a imagem cloud-sdk
como um passo de compilação no seu ficheiro de configuração para invocar comandos gcloud
na imagem.
Os argumentos transmitidos a este passo de compilação são transmitidos diretamente à CLI do Google Cloud,
o que lhe permite executar qualquer comando gcloud
nesta imagem.
Para implementar uma aplicação nas funções do Cloud Run, siga os passos seguintes:
- No diretório raiz do projeto, crie o
ficheiro de configuração do Cloud Build
denominado
cloudbuild.yaml
oucloudbuild.json
. No ficheiro de configuração:
- Adicione um campo
name
e especifique o passo de compilaçã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ênciagcloud functions deploy
. --source=.
implica 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 dos marcadores de posição no ficheiro de configuração acima pelo seguinte:
FUNCTION_NAME
é o nome das funções do Cloud Run que está a implementar. Se estiver a atualizar uma função existente, este valor tem de corresponder ao nome da função que está a atualizar.FUNCTION_REGION
é a região para a qual está a implementar funções do Cloud Run. Para ver uma lista das regiões suportadas, consulte o artigo Localizações das funções do Cloud Run.--trigger-http
é o tipo de acionador desta função, neste caso, um pedido HTTP (webhook).RUNTIME
é o tempo de execução no qual a função é executada.
Para mais informações sobre a utilização de
gcloud functions deploy
, consulte a documentação das funções do Cloud Run.- Adicione um campo
Inicie a compilação com o ficheiro de configuração criado no passo anterior:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
Substitua os valores dos marcadores de posição no ficheiro de configuração acima pelo seguinte:
CONFIG_FILE_PATH
é o caminho para o ficheiro de configuração de compilação.SOURCE_DIRECTORY
é o caminho ou o URL para o código-fonte.REGION
é uma das regiões de compilação suportadas.
Se não especificar um
CONFIG_FILE_PATH
e umSOURCE_DIRECTORY
no comandogcloud builds submit
, o Cloud Build assume que o ficheiro de configuração e o código fonte estão no diretório de trabalho atual.
Implementação contínua
Pode automatizar a implementação do seu software em funções do Cloud Run criando acionadores do Cloud Build. Pode configurar os acionadores para criar e implementar imagens sempre que atualizar o código fonte.
Para automatizar a implementação em funções do Cloud Run:
Na raiz do repositório, adicione um ficheiro de configuração com passos 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 dos marcadores de posição no ficheiro de configuração acima pelo seguinte:
FUNCTION_NAME
é o nome das funções do Cloud Run que está a implementar. Se estiver a atualizar uma função existente, este valor tem de corresponder ao nome da função que está a atualizar.FUNCTION_REGION
é a região para a qual está a implementar funções do Cloud Run. Para ver uma lista das regiões suportadas, consulte o artigo Localizações das funções do Cloud Run.--trigger-http
é o tipo de acionador desta função, neste caso, um pedido HTTP (webhook).RUNTIME
é o tempo de execução no qual a função é executada.
Crie um acionador de compilação com o ficheiro de configuração criado no passo anterior:
Abra a página Acionadores na Google Cloud consola:
Selecione o seu projeto no menu pendente do seletor de projetos na parte superior da página.
Clique em Criar acionador.
No campo Nome, introduza um nome para o acionador.
Em Região, selecione a região para o acionador.
Em Evento, selecione o evento do repositório para iniciar o acionador.
Em Origem, selecione o seu repositório e o nome da ramificação ou da etiqueta que vai iniciar o acionador. Para mais informações sobre como especificar que ramificações devem ser criadas automaticamente, consulte o artigo Criar um acionador de compilação.
Em Configuração, selecione Ficheiro de configuração do Cloud Build (YAML ou JSON).
No campo Localização do ficheiro de configuração do Cloud Build, escreva
cloudbuild.yaml
após/
.Clique em Criar para guardar o acionador de compilação.
Sempre que enviar novo código para o seu repositório, aciona automaticamente uma compilação e uma implementação nas funções do Cloud Run.
Para mais informações sobre como criar acionadores do Cloud Build, consulte o artigo Criar e gerir acionadores de compilação.
O que se segue?
- Saiba como fazer implementações azul/verde no Compute Engine
- Saiba como implementar no Cloud Run
- Saiba como implementar no GKE
- Saiba como implementar no Firebase
- Saiba como implementar no App Engine
- Saiba como resolver problemas de erros de compilação.