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

  • 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

  1. Na Google Cloud consola, selecione o seu projeto.

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

    Aceda a Contas de serviço

  3. Conceda a função de administrador do App Engine e utilizador da conta de serviço à conta de serviço de compilação:

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

      Aceda a Autorizações

    2. 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 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, em que 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 regex para o nome da ramificação ou da etiqueta que vai iniciar o 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?