Como executar o Rails 5 no ambiente flexível do App Engine

Dê os primeiros passos no desenvolvimento de aplicativos Ruby on Rails executados no ambiente flexível do App Engine. Como os aplicativos que você cria são executados na mesma infraestrutura que capacita todos os produtos do Google, tenha a certeza de que eles são escalonados para suprir todos os usuários, sejam eles poucos ou milhões.

Para acompanhar o tutorial, é preciso conhecer o desenvolvimento do Rails para a Web. Nele, você verá as etapas de implantação de um novo aplicativo do Rails.

Este tutorial requer o Ruby 2.3.3 ou mais recente.

Antes de começar

Marque as etapas conforme elas forem concluídas.

  1. check_box_outline_blankcheck_box Criar um projeto no Console do Google Cloud Platform.
    Caso ainda não tenha feito isso, crie um agora. Com os projetos, você gerencia todos os recursos do Google Cloud Platform para seu app, incluindo implantação, controle de acesso, faturamento e serviços.
    1. Abra o Console do GCP.
    2. No menu suspenso na parte superior, selecione Criar um projeto.
    3. Clique em Mostrar opções avançadas. Em Local do App Engine, selecione um local no Brasil.
    4. Dê um nome ao projeto.
    5. Anote o código do projeto, que pode ser diferente do nome do projeto. Esse ID é usado em comandos e configurações.
  2. check_box_outline_blankcheck_box Ativar o faturamento do projeto e se inscrever para uma avaliação gratuita.

    Caso ainda não tenha ativado o faturamento, faça isso agora e se inscreva para ter uma avaliação gratuita. A ativação do faturamento permite que recursos passíveis de cobrança, como execução de instâncias e armazenamento de dados, sejam usados no aplicativo. Você não será cobrado por nenhum serviço durante o período da avaliação gratuita.

  3. check_box_outline_blankcheck_box Instalar o SDK do Cloud.

    Instale e inicialize o SDK do Cloud agora, caso ainda não tenha feito isso. O SDK do Cloud contém ferramentas e bibliotecas que podem ser usadas para criar e gerenciar recursos no GCP.

Configurar o ambiente local para o Rails

Antes de começar, siga estas etapas:

  1. Instale o Ruby na versão 2.3.3 ou posterior.

  2. Instale a gem do Rails 5.

  3. Instale a gem do Bundler.

Se preferir, use o Cloud Shell, que já vem com o Ruby, o Rails, o Bundler e o SDK do Cloud instalados.

Para mais informações sobre como instalar o Rails e as respectivas dependências, consulte o guia oficial Primeiros passos com o Rails.

Depois de concluir os pré-requisitos, é possível criar e implantar um aplicativo do Rails. As seções a seguir contêm as etapas de configuração, execução e implantação de um aplicativo.

Criar um novo aplicativo

  1. Gere a estrutura de um novo aplicativo de amostra do Rails.

    rails new appengine_example
    
  2. Acesse o diretório que contém a amostra do código.

    cd appengine_example
    

Executar o aplicativo localmente

Para executar o novo aplicativo do Rails no computador local, siga estas etapas:

  1. Instale dependências usando o Bundler.

     bundle install
    
  2. Inicie um servidor da Web local.

     bundle exec rails server
    
  3. No navegador, acesse http://localhost:3000/.

Você verá na página a mensagem "Yay! You’re on Rails!" do aplicativo de amostra.

Captura de tela do novo aplicativo do Rails em execução

Adicionar uma página simples

Agora, adicione uma página de boas-vindas ao aplicativo Rails gerado.

  1. Para gerar a estrutura de uma nova página, crie um novo controlador do Rails denominado WelcomeController com uma ação index.

    bundle exec rails generate controller Welcome index
    
  2. Abra o arquivo app/views/welcome/index.html.erb para ver o seguinte HTML padrão.

    <h1>Welcome#index</h1>
    <p>Find me in app/views/welcome/index.html.erb</p>
  3. Modifique o arquivo como quiser. Por exemplo, é possível usar o seguinte conteúdo:

    <h1>Welcome</h1>
    <p>This is a home page for a new Rails App on Google Cloud Platform!</p>
  4. Defina a ação do controlador index como a ação raiz para o Rails. Sempre que um usuário acessar o aplicativo do Rails, ele verá sua página de boas-vindas.

  5. Abra o arquivo config/routes.rb para ver o seguinte conteúdo gerado.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    end
  6. Para modificar esse arquivo, adicione root 'welcome#index'.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
      root 'welcome#index'
    end
  7. Salve e feche o arquivo. Teste o aplicativo do Rails como você fez antes.

Implantar o app no ambiente flexível do App Engine

O ambiente flexível do App Engine usa um arquivo denominado app.yaml para descrever a configuração de implantação de um aplicativo. Se o arquivo não estiver presente, a ferramenta de linha de comando gcloud tentará deduzir a configuração de implantação. Porém, é uma boa ideia fornecer esse arquivo, porque o Rails requer uma chave secreta em um ambiente de produção.

Para configurar o aplicativo de amostra para implantação no App Engine, crie um novo arquivo chamado app.yaml na raiz do diretório do aplicativo e adicione o seguinte:

entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby

Configurar a chave secreta do Rails

Ao implementar um aplicativo do Rails no ambiente de produção, defina a variável de ambiente SECRET_KEY_BASE como uma chave secreta usada para proteger os dados da sessão do usuário. Essa variável é lida no arquivo config/secrets.yml.

  1. Gere uma nova chave secreta.

    bundle exec rails secret
    
  2. Copie a chave secreta gerada. Você usará essa chave na próxima etapa.

  3. Abra o arquivo app.yaml criado anteriormente e adicione uma seção env_variables. A seção env_variables define as variáveis de ambiente em production no ambiente flexível do App Engine. O arquivo app.yaml será semelhante ao exemplo abaixo. Substitua [SECRET_KEY] pela chave secreta na área de transferência.

    entrypoint: bundle exec rackup --port $PORT
    env: flex
    runtime: ruby
    
    env_variables:
      SECRET_KEY_BASE: [SECRET_KEY]

Configurar um aplicativo de ambiente flexível do App Engine

Se esta for a primeira vez que você está implantando um aplicativo, é necessário criar um aplicativo de ambiente flexível do App Engine para ajudar a selecionar a região em que o aplicativo do Rails será executado. Saiba mais sobre regiões e zonas.

  1. Crie um aplicativo do App Engine.

    gcloud app create
    
  2. Selecione uma região compatível com o ambiente flexível do App Engine para aplicativos em Ruby.

Implantar no ambiente flexível do App Engine

  1. Antes da implantação, pré-compile os recursos do Rails.

    RAILS_ENV=production bundle exec rails assets:precompile
    
  2. Após a conclusão da compilação, implante a amostra.

    gcloud app deploy
    

Aguarde a notificação sobre a conclusão da atualização. Isso pode demorar alguns minutos.

Acessar o aplicativo do Rails implantado

  1. Para recuperar o código do projeto, execute gcloud info.

  2. No navegador, acesse https://[PROJECT_ID].appspot.com.

    onde:

    • [PROJECT_ID] é o código do projeto que você recuperou na primeira etapa.

O conteúdo a seguir é exibido.

Captura de tela do novo aplicativo do Rails em execução

Desta vez, sua solicitação é veiculada pelo aplicativo do Rails em execução no ambiente flexível do App Engine.

Esse comando implanta o aplicativo conforme descrito em app.yaml e define a versão recém-implantada como padrão. Com isso, ela veicula todo o tráfego novo. Durante a implantação do app, várias mensagens repetidas podem ser vistas, enquanto é verificado pela plataforma se o app está veiculando. Isso é normal. Aguarde a mensagem notificando que a atualização do app foi concluída.

Para atualizar o app, implante a versão atualizada digitando o mesmo comando usado para implantá-lo pela primeira vez. A implantação cria uma nova versão do app e a define como padrão. As versões mais antigas são mantidas, bem como as instâncias de VM associadas. Lembre-se de que essas versões do aplicativo e instâncias de VM são recursos passíveis de cobrança.

Ler registros do App Engine

Agora que você já implantou o aplicativo Rails, será possível ler os registros. Para fazer isso, utilize o Visualizador de registros localizado no Console do GCP ou use o comando gcloud app logs read. Saiba mais sobre como ler registros usando o SDK do Cloud.

Fazer a limpeza dos recursos

Depois de concluir o tutorial "Como executar o Rails 5 no ambiente flexível do App Engine", limpe os recursos criados no GCP para que eles não utilizem a cota nem cobrados no futuro. Nas seções a seguir, veja como excluir e desativar esses recursos.

Excluir projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No Console do GCP, acesse a página "Projetos".

    Acessar a página Projetos

  2. Na lista de projetos, selecione um e clique em Excluir projeto.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

Excluir uma versão do aplicativo do App Engine

Para excluir uma versão do aplicativo:

  1. No Console do GCP, acesse a página "Versões do App Engine".

    Acessar a página Versões

  2. Clique na caixa de seleção ao lado da versão do aplicativo não padrão que você quer excluir.
  3. Clique no botão Excluir na parte superior da página para excluir a versão do aplicativo.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…