Automatizar as implantações do App Engine com o Cloud Build

Neste guia de início rápido, mostramos como implantar automaticamente um app armazenado no Cloud Source Repositories no App Engine após uma nova confirmação.

Antes de começar

  1. Conclua as etapas em Criar um repositório de código no Cloud Source Repositories.

    Depois de concluir esse guia, você terá um aplicativo que pode ser implantado no App Engine.

  2. Enable the App Engine Admin, Cloud Build APIs.

    Enable the APIs

Conceder ao App Engine acesso à conta de serviço do Cloud Build

O Cloud Build usa uma conta de serviço para implantar seu código. As permissões padrão dessa conta não permitem determinadas ações, como a implantação no App Engine.

Ative sua conta de serviço para implantar no App Engine concedendo à conta outros papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês):

  1. No Console do Google Cloud, abra a página "Configurações do Cloud Build":

    Abrir a página "Configurações do Cloud Build"

    Você verá a página Permissões da conta de serviço:

    A página de permissões da conta de serviço.

  2. Defina o status do papel Administrador do App Engine como Ativo.

Implantar o aplicativo

  1. Em uma janela de terminal, acesse o diretório que contém o repositório:

    cd hello-world
    
  2. Implante o app de amostra:

    gcloud app deploy app.yaml
    
  3. Verifique se o app está em execução:

    gcloud app browse
    

    Em caso positivo, o navegador exibirá a mensagem Hello, World!.

Criar um arquivo cloudbuild.yaml

  1. Em uma janela de terminal, acesse o diretório que contém o repositório:

    cd hello-world
    
  2. Usando um editor de texto, crie um arquivo chamado cloudbuild.yaml e cole as seguintes informações de configuração:

    steps:
    - name: "gcr.io/cloud-builders/gcloud"
      args: ["app", "deploy"]
    timeout: "1600s"
    

Adicionar o arquivo cloudbuild.yaml ao seu repositório

  1. Adicione cloudbuild.yaml ao repositório:

    git add .
    
  2. Confirme o arquivo com um comentário descrevendo o histórico desta ação:

    git commit -m "Add cloudbuild.yaml file"
    
  3. Usando o comando git push, adicione o conteúdo do repositório Git local ao Cloud Source Repositories:

    git push origin master
    

Criar um acionador de versão

  1. No Console do Google Cloud, abra a página Gatilhos do Cloud Build.

    Abrir a página "Acionadores"

  2. Se seu projeto do Google Cloud não estiver selecionado, clique em Selecionar um projeto e, em seguida, no nome do projeto do Google Cloud.

  3. Clique em Criar gatilho.

    A página Criar gatilho é aberta.

  4. Preencha as seguintes opções:

    • No campo Nome, digite app-engine-test.
    • Em Evento, selecione Mover para uma ramificação.
    • Em Origem, selecione hello-world como Repositório e ^master$ como Ramificação.
    • Em Configuração, selecione arquivo de configuração do Cloud Build (yaml ou json).
    • No campo local do arquivo de configuração do Cloud Build, digite cloudbuild.yaml depois do /.
  5. Clique em Criar para salvar o gatilho de compilação.

Enviar uma alteração para seu aplicativo

  1. Em uma janela de terminal, use um editor de texto para atualizar o arquivo main.py colando o seguinte código:

    #!/usr/bin/env python
    
    import webapp2
    
    class MainHandler(webapp2.RequestHandler):
        def get(self):
            self.response.write('I update automatically!')
    
    app = webapp2.WSGIApplication([
        ('/', MainHandler)
    ], debug=True)
    
  2. Adicione o arquivo ao Git:

    git add .
    
  3. Confirme o arquivo com um comentário descrevendo o histórico desta ação:

    git commit -m "Update app to demonstrate build triggers"
    
  4. Usando o comando git push, adicione o conteúdo do repositório Git local ao Cloud Source Repositories:

    git push origin master
    

Visualizar sua versão em andamento

  1. No Console do Google Cloud, abra a página Gatilhos do Cloud Build.

    Abrir a página "Acionadores"

  2. Se seu projeto do Google Cloud não estiver selecionado, clique em Selecionar um projeto e, em seguida, no nome do projeto do Google Cloud.

  3. Clique em Histórico.

    Será aberta uma lista de todas as versões. Na parte superior, há uma nova entrada que representa a versão iniciada depois que alteração foi enviada para o Cloud Source Repositories. Quando a versão estiver pronta, aparecerá uma marca de seleção verde ao lado da entrada de versão.

Testar novamente seu aplicativo

Em uma janela de terminal, abra seu aplicativo:

gcloud app browse

O navegador agora exibe a mensagem I update automatically!.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

Excluir o acionador de versão

  1. No Console do Google Cloud, abra a página Gatilhos do Cloud Build.

    Abrir a página "Acionadores"

  2. Se seu projeto do Google Cloud não estiver selecionado, clique em Selecionar um projeto e, em seguida, no nome do projeto do Google Cloud.

  3. Na mesma linha do gatilho que você quer excluir, clique em Mais e depois selecione Excluir.

Excluir o repositório

  1. No console do Google Cloud, abra a página Todos os repositórios do Cloud Source Repositories.

    Abrir o Cloud Source Repositories

  2. Mantenha o ponteiro do mouse sobre o repositório que você quer excluir e clique em Configurações .

    A página Configurações gerais é aberta.

  3. Clique em Excluir este repositório .

    A caixa de diálogo Remover repositório é aberta.

  4. Digite o nome do repositório que você quer excluir.

  5. Clique em Excluir.

A seguir