Esta página explica como implementar aplicações no App Engine 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.
O App Engine é uma plataforma sem servidor totalmente gerida para desenvolver e alojar aplicações Web em grande escala. Para mais informações sobre o App Engine, leia a documentação do App Engine.
Antes de começar
Ative a API App Engine:
Para executar os comandos
gcloud
nesta página, instale a CLI do Google Cloud.Tenha o código-fonte da aplicação que quer criar e implementar no App Engine à mão. O código fonte tem de estar armazenado num repositório, como os Cloud Source Repositories, o GitHub ou o Bitbucket.
Autorizações de IAM necessárias
Na Google Cloud consola, selecione o seu projeto.
Conceda a função de conta de serviço do Cloud Build à conta de serviço predefinida do App Engine. Se a conta de serviço não aparecer na lista, localize-a na página Contas de serviço.
Conceda a função de administrador do App Engine e utilizador da conta de serviço à conta de serviço de compilação:
-
Na Google Cloud consola, aceda à página settings Autorizações do Cloud Build:
Defina o estado da função Administrador do App Engine e da função Utilizador da conta de serviço como Ativado.
-
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.
O App Engine fornece o comando gcloud app deploy
, que cria uma imagem com o seu código fonte e implementa essa imagem no App Engine. Pode usar a cloud-sdk
imagem
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 gcloud, o que lhe permite executar qualquer comando gcloud
nesta imagem.
Para implementar uma aplicação no App Engine, siga estes passos:
Crie um ficheiro de configuração do Cloud Build denominado
cloudbuild.yaml
oucloudbuild.json
.No ficheiro de configuração:
- Adicione um campo
name
para especificar a etapa de compilaçãocloud-sdk
. - Adicione um campo
entrypoint
para usar a ferramentabash
quandocloud-sdk
é invocado. No campo
args
, invoque o comandogcloud app deploy
e defina umtimeout
> para o App Engine usar quando invoca o Cloud Build. Isto é necessário porque os passos de compilação e as compilações do Cloud Build têm um limite de tempo predefinido de 10 minutos, e as implementações do App Engine podem demorar mais tempo a concluir. A especificação de um tempo limite mais longo garante que a compilação não atinge o tempo limite se o comandogcloud app deploy
demorar mais de 10 minutos a ser concluído.Erros de limite de tempo ao usar o ambiente padrão do App Engine: Só pode configurar os limites de tempo conforme descrito aqui quando usar o ambiente flexível do App Engine. O ambiente padrão do App Engine não permite a configuração do limite de tempo de compilação. Se estiver a usar o Cloud Build para implementar no ambiente padrão do App Engine e a sua compilação estiver a falhar com um erro de limite de tempo, considere usar o ambiente flexível do App Engine ou o Cloud Run em vez do ambiente padrão do App Engine.
Adicione um valor de criação
timeout
superior a 10 minutos.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
- Adicione um campo
Inicie a compilação, em que
SOURCE_DIRECTORY
é o caminho ou o URL para o código fonte eREGION
é uma das regiões de compilação suportadas para iniciar a compilação:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Implementação contínua
Pode automatizar a implementação do seu software no App Engine criando acionadores do Cloud Build. Pode configurar os acionadores para criar e implementar imagens sempre que atualizar o código fonte.
Para automatizar a sua implementação no App Engine:
No seu repositório, adicione um ficheiro de configuração com passos para invocar o comando
gcloud app deploy
:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
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 Abrir.
Clique em Criar acionador.
Na página Criar acionador, introduza as seguintes definições:
Introduza um nome para o acionador.
Selecione o evento do repositório para iniciar o acionador.
Selecione o repositório que contém o código fonte e o ficheiro de configuração de compilação.
Especifique a regex para o nome da ramificação ou da etiqueta que vai iniciar o acionador.
Configuração: escolha o ficheiro de configuração de compilação que criou anteriormente.
Clique em Criar para guardar o acionador de compilação.
Sempre que enviar novo código para o seu repositório, inicia automaticamente uma compilação e uma implementação no App Engine.
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 implementar no Cloud Run
- Saiba como fazer implementações azul/verde no Compute Engine
- Saiba como implementar no GKE
- Saiba como implementar em funções do Cloud Run
- Saiba como implementar no Firebase
- Saiba como resolver problemas de erros de compilação.