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:
Tenha o código-fonte da aplicação pronto. O código fonte tem de estar armazenado num repositório, como o GitHub ou o Bitbucket.
Para executar os comandos
gcloudnesta página, instale a CLI do Google Cloud.
Autorizações de gestão de identidade e de acesso necessárias
-
Na Google Cloud consola, aceda à página settings Autorizações do Cloud Build:
Para a conta de serviço do Cloud Build especificada ou a conta de serviço do Cloud Build predefinida, defina o estado das seguintes funções como Ativado:
- Administrador do App Engine (
roles/appengine.appAdmin): permite que o Cloud Build implemente novas versões no App Engine.- No painel Atribuir função de utilizador da conta de serviço, escolha uma conta de serviço para roubar a identidade e, de seguida, clique em Conceder autorização.
- Administrador de armazenamento (
roles/storage.admin) | Permite a leitura e a escrita a partir do Cloud Storage. - Escritor do Artifact Registry (
roles/artifactregistry.writer) | Permite extrair imagens do Artifact Registry e escrever no mesmo. - Escritor de registos (
roles/logging.logWriter) | Permite que as entradas de registo sejam escritas no Cloud Logging. - Editor do Cloud Build (
roles/cloudbuild.builds.editor) | Permite que a sua conta de serviço execute compilações.
- Administrador do App Engine (
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 stepno 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.yamloucloudbuild.json.No ficheiro de configuração:
- Adicione um campo
namepara especificar a etapa de compilaçãocloud-sdk. - Adicione um campo
entrypointpara usar a ferramentabashquandocloud-sdké invocado. No campo
args, invoque o comandogcloud app deploye 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 deploydemorar 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
timeoutsuperior 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, onde
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 expressão regular para o nome da ramificação ou da etiqueta que vai iniciar o seu 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.