Criar um aplicativo Ruby no ambiente flexível do App Engine

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

Neste guia de início rápido, você verá como criar e implantar um app que exibe uma mensagem curta. É possível usar o aplicativo de amostra neste guia de início rápido para qualquer versão compatível do Ruby. Basta especificar a versão do ambiente de execução e do sistema operacional app.yaml.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Pré-requisitos adicionais

  1. 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 você quer localizar o aplicativo do App Engine.

  2. Instale os pré-requisitos a seguir:

Locais do App Engine

O App Engine é regional. Isso significa que a infraestrutura que executa os aplicativos está em uma determinada região que é gerenciada pelo Google para estar 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 dos usuários do aplicativo, mas considere os locais em que o App Engine está disponível, bem como os locais dos outros produtos e serviços do Google Cloud usados pelo aplicativo. O uso de serviços em vários locais pode afetar a latência e o preço do aplicativo.

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

Se você já criou um aplicativo do App Engine, será possível consultar a região dele com um dos seguintes 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).

faça o download do app Hello World

Criamos um app Hello World para App Engine. Assim, é possível ter uma ideia de como implantar um app 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 (em inglês) 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/flexible/hello_world
    

Execute 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 instalada para seu ambiente de execução, faça o download e instale o Ruby.

    Fazer o download e instalar o Ruby

  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.

Implante e execute o Hello World no App Engine

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

  1. Implemente o aplicativo Hello World executando o seguinte comando no diretório flexible/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 aplicativo. 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 ID de projeto alternativo do Google 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 aplicativo em https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse
    em que PROJECT_ID representa o ID 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 App Engine no ambiente flexível do App Engine.

Se você encontrar erros na implantação do app, verifique as dicas de solução de problemas.

Confira as seções a seguir para informações sobre limpeza e links das próximas etapas.

Limpar

Para evitar cobranças, você pode excluir seu projeto do Google Cloud para interromper o faturamento de todos os recursos usados naquele projeto.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

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 a Google Cloud CLI instalada, o que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muitos outros.

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 seguinte configuração para seu app:

  • Define env: flex, indicando que o aplicativo usa o ambiente flexível do App Engine.
  • Especifica o ambiente de execução usado pelo app.

    runtime: ruby
    env: flex
    entrypoint: bundle exec ruby app.rb
    
    runtime_config:
      operating_system: ubuntu22
    
    # 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
    

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:

source "https://rubygems.org"

gem "sinatra"
gem "webrick", "~> 1.8"