Guia de início rápido do Ruby no ambiente flexível do App Engine

ID da região

O REGION_ID é um código que o Google atribui com base na região selecionada ao criar o aplicativo. A inclusão de REGION_ID.r nos URLs do App Engine é opcional para aplicativos atuais e em breve será obrigatória para todos os aplicativos novos.

Para garantir uma transição tranquila, estamos atualizando lentamente o App Engine para usar códigos da região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um código da região para o aplicativo. Como o código é opcional para os aplicativos atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o código da região está disponível para os aplicativos que já existem.

Saiba mais sobre códigos da região.

Neste guia de início rápido, você aprenderá a criar um pequeno aplicativo do App Engine que exibe uma mensagem curta.

Antes de começar

Antes de executar e implantar este guia de início rápido, instale o SDK do Cloud e configure um projeto do Cloud para o App Engine:

  1. Faça o download e instale o SDK do Cloud:

    Fazer o download do SDK

    Observação: se o SDK do Cloud já estiver instalado, atualize-o executando o comando a seguir:

    gcloud components update
    
  2. Crie um novo projeto:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    Substitua [YOUR_PROJECT_ID] por uma string de caracteres que identifique seu projeto de forma exclusiva. Por exemplo, my-project-24.

    Verifique se o projeto foi criado:

    gcloud projects describe [YOUR_PROJECT_ID]
    

    Você verá detalhes do projeto parecidos com o seguinte:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. Inicialize seu aplicativo do App Engine com o projeto e escolha a região:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Quando solicitado, selecione a região em que o aplicativo do App Engine será localizado.

  4. Verifique se o faturamento está ativado no projeto. Uma conta de faturamento precisa estar vinculada ao projeto para que o aplicativo seja implantado no App Engine.

    Ativar faturamento

    A implantação do ambiente flexível gerará custos enquanto estiver ativa. Limpe o projeto quando terminar para evitar custos contínuos.

  5. Instale os pré-requisitos a seguir:

Locais do App Engine

Como o App Engine é regional, a infraestrutura de execução dos aplicativos está localizada em uma determinada região e é gerenciada pelo Google. Assim, ela fica disponível de modo redundante em todas as zonas dessa região.

Atender aos requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região de execução dos aplicativos. Geralmente, é possível selecionar a região mais próxima aos usuários do seu aplicativo, mas considere a localização dos outros produtos e serviços do Google Cloud usados pelo seu aplicativo. Usar serviços em vários locais pode afetar a latência do seu aplicativo, bem como os preços.

O App Engine está disponível nas regiões a seguir:

  • northamerica-northeast1 (Montreal)
  • us-central (Iowa)
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)
  • us-east1 (Carolina do Sul)
  • us-east4 (Norte da Virgínia)
  • southamerica-east1 (São Paulo)
  • europe-west (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zurique)
  • asia-northeast1 (Tóquio)
  • asia-northeast2 (Osaka)
  • asia-northeast3 (Seul)
  • asia-east2 (Hong Kong)
  • asia-south1 (Mumbai)
  • australia-southeast1 (Sydney)

Não é possível alterar a região de um aplicativo depois de defini-la.

Se você já criou um aplicativo do App Engine, é possível visualizar a região seguindo um destes procedimentos:

Neste guia de início rápido, demonstramos um aplicativo simples em Ruby escrito com o framework da Web Sinatra (em inglês) que pode ser implantado no App Engine. Essa amostra usa o Sinatra, mas é possível usar outros frameworks, como o Ruby on Rails (em inglês).

Download do app Hello World

Criamos um aplicativo Hello World simples para Ruby. Assim, você pode ter uma ideia de como implantar um aplicativo no Google Cloud.

  1. Clone o repositório do app de amostra Hello World na máquina local.

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
    

    Outra opção é fazer o download da amostra como um arquivo zip e extraí-lo.

  2. Acesse o diretório que contém o código de amostra.

    cd ruby-docs-samples/appengine/hello_world
    

Executar o Hello World na máquina local

Neste exemplo, o Bundler (em inglês) é usado para executar o aplicativo Hello World no seu computador local:

  1. Se você ainda não tiver a linguagem de programação Ruby instalada, faça o download e instale-a.

    Fazer o download e instalar o Ruby (em inglês)

  2. Instale o Bundler (em inglês):

    gem install bundler
    
  3. Instale as dependências desse projeto:

    bundle install
    
  4. Inicie um servidor da Web local.

    bundle exec ruby app.rb -p 8080
    
  5. Em seu navegador da Web, digite:

    http://localhost:8080

A mensagem Hello World do aplicativo de amostra é exibida na página. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.

Implantar e executar o Hello World no App Engine

Para implantar o aplicativo Hello World no ambiente flexível do App Engine:

  1. Implemente o aplicativo Hello World executando o comando a seguir no diretório hello_world:

    gcloud app deploy

    Saiba mais sobre sinalizações opcionais.

    Sinalizações comuns do comando gcloud

    • Inclua a sinalização --version para especificar um ID exclusivo da versão do seu app. Quando a sinalização não é incluída, o ID é gerado automaticamente. Exemplo: --version [YOUR_VERSION_ID]
    • Inclua a sinalização --project para especificar um código de projeto alternativo do Cloud para o que você inicializou como padrão na ferramenta gcloud. Exemplo: --project [YOUR_PROJECT_ID]

    Exemplo:

    gcloud app deploy --version pre-prod-5 --project my-sample-app

    Para aprender a implantar o app pela linha de comando, consulte Como testar e implantar o app. Para uma lista de todas as sinalizações de comando, consulte a referência do gcloud app deploy.

  2. Inicie o navegador para visualizar o app em https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse
    em que PROJECT_ID representa o código do projeto do Google Cloud.

Nesse momento, a página que exibe a mensagem Hello World é enviada por um servidor da Web executado em uma instância do App Engine.

Parabéns! Você implantou seu primeiro aplicativo do Ruby no ambiente flexível do App Engine.

Nas próximas seções, veja informações sobre a limpeza e links para as possíveis próximas etapas.

Limpar

Exclua o projeto do Google Cloud para não ser cobrado pelos recursos usados nele.

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar a página Gerenciar recursos

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir

Conheça a plataforma inteira

Agora que você sabe como é desenvolver e implantar aplicativos do App Engine, explore o restante do Google Cloud. Você já tem o SDK do Cloud instalado, que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muito mais.

Para ver um tutorial guiado sobre como criar um aplicativo que usa toda a plataforma, em vez de somente o App Engine, confira nosso guia de início rápido sobre a criação do app Bookshelf.

Saiba mais sobre o ambiente flexível do App Engine

Listamos alguns tópicos para você continuar aprendendo sobre o App Engine.

Revisão do código do Hello World

O Hello World é o app mais simples possível do App Engine. Nele, há apenas um serviço e uma versão, e todo o código é armazenado no diretório raiz. Nesta seção, cada arquivo do app é descrito em detalhes.

app.rb

O aplicativo Hello World é um aplicativo Sinatra básico de um arquivo:

require "sinatra"

get "/" do
  "Hello world!"
end

app.yaml

O arquivo app.yaml descreve a configuração de implantação do aplicativo:

runtime: ruby
env: flex
entrypoint: bundle exec ruby app.rb

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/ruby/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

Neste caso, app.yaml especifica o ambiente de execução usado pelo aplicativo e configura o env: flex, que determina o uso do ambiente flexível.

Gemfile

O Gemfile é usado para especificar as dependências de RubyGem do aplicativo, e o Bundler para declarar e instalar as dependências. O aplicativo Hello World requer uma gem do Ruby, que é o framework da Web Sinatra (todos em inglês):

source "https://rubygems.org"

gem "sinatra"