Nesta página, explicamos 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.
Prepare o código-fonte do aplicativo. Seu código-fonte precisa ser armazenado em um repositório como GitHub ou Bitbucket.
Para executar os comandos
gcloud
nesta página, instale a Google Cloud CLI.
Permissões de gerenciamento de identidade e acesso obrigatórias
-
No console Google Cloud , acesse a página Permissões do settings Cloud Build:
Para a conta de serviço do Cloud Build especificada ou a conta de serviço padrão do Cloud Build, defina o status dos seguintes papéis como Ativado:
- Administrador do App Engine (
roles/appengine.appAdmin
): permite que o Cloud Build implante novas versões no App Engine.- No painel "Atribuir papel de usuário da conta de serviço", escolha uma conta de serviço para representar e clique em Conceder permissão.
- Administrador do Storage (
roles/storage.admin
): permite ler e gravar no Cloud Storage. - Gravador do Artifact Registry (
roles/artifactregistry.writer
): permite extrair imagens do Artifact Registry e gravar nele. - Gravador de registros (
roles/logging.logWriter
): permite que entradas de registro sejam gravadas no Cloud Logging. - Editor do Cloud Build (
roles/cloudbuild.builds.editor
): permite que sua conta de serviço execute builds.
- Administrador do App Engine (
Como configurar a implantação
O Cloud Build permite usar 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. Use a imagem cloud-sdk
como uma etapa de build no arquivo de configuração para invocar os comandos gcloud
na imagem.
Os argumentos inseridos nessa etapa de compilação são transmitidos diretamente para a CLI gcloud,
o que permite executar 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 o URL do código-fonte eREGION
é uma das regiões de build compatíveis 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 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 a expressão regular do nome da ramificação ou da tag que vai 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 fazer implantações azul-verde no Compute Engine
- Saiba como implantar no GKE.
- Saiba como implantar no Cloud Run functions.
- Saiba como implantar no Firebase.
- Saiba como resolver erros de build.