Implementação no App Engine

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:

    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 gcloud nesta página, instale a CLI do Google Cloud.

Autorizações de gestão de identidade e de acesso necessárias

  1. Na Google Cloud consola, aceda à página Autorizações do Cloud Build:

    Aceda a Autorizações

  2. 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.
    • 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.

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:

  1. Crie um ficheiro de configuração do Cloud Build denominado cloudbuild.yaml ou cloudbuild.json.

  2. No ficheiro de configuração:

    • Adicione um campo name para especificar a etapa de compilação cloud-sdk.
    • Adicione um campo entrypoint para usar a ferramenta bash quando cloud-sdk é invocado.
    • No campo args, invoque o comando gcloud app deploy e defina um timeout> 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 comando gcloud 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"
    }
    
  3. Inicie a compilação, onde SOURCE_DIRECTORY é o caminho ou o URL para o código fonte e REGION é 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:

  1. 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"
    }
    
  2. Crie um acionador de compilação com o ficheiro de configuração criado no passo anterior:

    1. Abra a página Acionadores na Google Cloud consola:

      Abra a página Acionadores

    2. Selecione o seu projeto no menu pendente do seletor de projetos na parte superior da página.

    3. Clique em Abrir.

    4. Clique em Criar acionador.

      Na página Criar acionador, introduza as seguintes definições:

      1. Introduza um nome para o acionador.

      2. Selecione o evento do repositório para iniciar o acionador.

      3. Selecione o repositório que contém o código fonte e o ficheiro de configuração de compilação.

      4. Especifique a expressão regular para o nome da ramificação ou da etiqueta que vai iniciar o seu acionador.

      5. Configuração: escolha o ficheiro de configuração de compilação que criou anteriormente.

    5. 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?