Esta página explica como implantar aplicativos no App Engine usando o Cloud Build. Se você não estiver familiarizado com o Cloud Build, leia os guias de início rápido e a visão geral da configuração de build primeiro.
O App Engine é uma plataforma sem servidor totalmente gerenciada para desenvolver e hospedar aplicativos da Web em 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 o Google Cloud CLI.Tenha em mãos o código-fonte do aplicativo que você quer criar e implantar no App Engine. O código-fonte precisa ser armazenado em um repositório, como Cloud Source Repositories, GitHub ou Bitbucket.
Permissões do IAM obrigatórias
Conceda o papel Administrador do App Engine e Usuário da conta de serviço à conta de serviço do Cloud Build:
Abra a página Configurações do Cloud Build:
Defina o status do papel Administrador do App Engine e do papel Usuário da conta de serviço como Ativado.
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 App Engine fornece o comando gcloud app deploy
, que cria uma imagem com o código-fonte e implanta essa imagem no App Engine. Você pode usar o cloud-sdk
imagem
como uma etapa de build no arquivo de configuração para invocar comandos gcloud
na imagem.
Os argumentos passados para essa etapa de build são transmitidos diretamente para a CLI gcloud.
permitindo que você execute qualquer comando gcloud
nessa imagem.
Para implantar um aplicativo no App Engine, siga estas etapas:
Crie um arquivo de configuração do Cloud Build com o nome
cloudbuild.yaml
oucloudbuild.json
.No arquivo de configuração:
- Adicione um campo
name
para especificar a etapa de buildcloud-sdk
. - Adicione um campo
entrypoint
para usar a ferramentabash
quandocloud-sdk
for invocado. No campo
args
, invoque o comandogcloud app deploy
e defina umtimeout
para o App Engine usar quando invocar o Cloud Build. Isso é necessário porque as etapas de build do Cloud Build e os builds têm um tempo limite padrão de 10 minutos, enquanto as implantações do App Engine podem levar mais tempo para concluírem. Especificar um tempo limite maior garante que o tempo limite da build não seja atingido segcloud app deploy
demorar mais de 10 minutos para ser concluído.Erros de tempo limite ao usar o ambiente padrão do App Engine: é possível configurar tempos limite conforme descrito aqui ao usar o ambiente flexível do App Engine. O ambiente padrão do App Engine não permite que o tempo limite da versão seja configurado. Se você estiver usando o Cloud Build para implantar no ambiente padrão do App Engine e o build falhar com um erro de tempo limite, considere o uso do ambiente flexível do App Engine ouCloud Run em vez do ambiente padrão do App Engine.
Adicione um valor build
timeout
de mais de 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 o build, em que
SOURCE_DIRECTORY
é o caminho ou URL para a origem. O código, eREGION
é uma das regiões de build com suporte. para iniciar o build:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Implantação contínua
É possível automatizar a implantação de seu software no Google App Engine criando gatilhos do Cloud Build. Configure os acionadores para criar e implantar imagens sempre que atualizar o código-fonte.
Para automatizar sua implantação no App Engine:
No repositório, adicione um arquivo de configuração com etapas 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 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.
Sempre que enviar um novo código para seu repositório, você iniciará automaticamente um build e implantará seu serviço do App Engine.
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 realizar implantações azul-verde no Compute Engine.
- Saiba como implantar no GKE.
- Saiba como implantar no Cloud Functions.
- Saiba como implantar no Firebase.
- Saiba como resolver erros de build.