Cómo ejecutar Rails 5 en el entorno flexible de App Engine

Comenzar a desarrollar apps de Ruby on Rails que se ejecuten en el entorno flexible de App Engine es fácil. Dado que las apps que crees se ejecutarán en la misma infraestructura que impulsa todos los productos de Google, ten la confianza de que escalarán para atender a todos tus usuarios, sin importar si son unos pocos o millones.

Para este instructivo, suponemos que conoces el desarrollo web con Rails. Este te guía a través de la implementación de una aplicación de Rails nueva.

Para este instructivo debes tener Ruby 2.3.3 o posterior.

Antes de comenzar

Marca cada paso que completes.

  1. check_box_outline_blank check_box Crea un proyecto en Google Cloud Platform Console.
    Si aún no creaste un proyecto, hazlo ahora. Los proyectos te permiten administrar todos los recursos de Google Cloud Platform de tu aplicación, incluida la implementación, el control de acceso, la facturación y los servicios.
    1. Abre GCP Console.
    2. En el menú desplegable de la parte superior, selecciona Crear un proyecto.
    3. Haz clic en Mostrar opciones avanzadas. En Ubicación de App Engine, selecciona una ubicación en Estados Unidos.
    4. Asigna un nombre a tu proyecto.
    5. Toma nota del ID de proyecto, que podría ser distinto del nombre del proyecto. El ID del proyecto se usa en comandos y configuraciones.
  2. check_box_outline_blank check_box Habilita la facturación de tu proyecto dey regístrate para realizar una prueba gratuita de.

    Si aún no habilitaste la facturación para tu proyecto, habilita la facturación ahoray regístrate para una prueba gratuita. Habilitar la facturación permite que la app consuma recursos facturables, como la ejecución de instancias y el almacenamiento de datos. Durante el período de prueba gratuita, no se te cobrará ningún servicio.

  3. check_box_outline_blank check_box Instala el SDK de Cloud.

    Si aún no lo has hecho, instala y, luego, inicializa el SDK de Cloud ahora. El SDK de Cloud contiene herramientas y bibliotecas que te permiten crear y administrar recursos en GCP.

Configura el entorno local para Rails

Antes de comenzar, realiza los siguientes pasos:

  1. Instala la versión 2.3.3 de Ruby o una posterior.

  2. Instala la gema de Rails 5.

  3. Instala la gema de Bundler.

De manera alternativa, puedes usar Cloud Shell, que incluye Ruby, Rails, Bundler y el SDK de Cloud instalados.

Para obtener información adicional sobre la instalación de Rails y sus dependencias, consulta la guía oficial Comenzar a usar Rails.

Tras completar los requisitos previos, podrás crear e implementar una app de Rails. Las siguientes secciones te guiarán a través de la configuración, la ejecución y la implementación de una app.

Crea una app nueva

  1. Estructura una app de muestra de Rails nueva.

    rails new appengine_example
    
  2. Ve al directorio que contiene el código de muestra.

    cd appengine_example
    

Ejecuta la app de forma local

Para ejecutar la app de Rails nueva en tu computadora local, haz lo siguiente:

  1. Instala las dependencias con Bundler.

     bundle install
    
  2. Inicia un servidor web local.

     bundle exec rails server
    
  3. En tu navegador, ve a http://localhost:8000.

Aparecerá el mensaje: "Yay! You’re on Rails!" de la app de muestra en la página.

Captura de pantalla de la app de Rails nueva en ejecución

Agrega una página sencilla

Ahora, agrega una página de bienvenida a la app de Rails que generaste.

  1. Para generar la estructura para una página nueva, crea un controlador de Rails nuevo llamado WelcomeController con una acción index.

    bundle exec rails generate controller Welcome index
    
  2. Abre el archivo app/views/welcome/index.html.erb para ver la siguiente plantilla HTML.

    <h1>Welcome#index</h1>
    <p>Find me in app/views/welcome/index.html.erb</p>
  3. Modifica el archivo según prefieras. Por ejemplo, puedes usar el contenido siguiente:

    <h1>Welcome</h1>
    <p>This is a home page for a new Rails App on Google Cloud Platform!</p>
  4. Configura la acción index del controlador como la acción raíz para Rails. Luego, cada vez que un usuario visite la app de Rails, verá tu página de bienvenida.

  5. Abre el archivo config/routes.rb para ver el siguiente contenido autogenerado.

    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 este archivo, agrega 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. Guarda el archivo y ciérralo. Prueba la app de Rails como lo hiciste antes.

Implementa la app en el entorno flexible de App Engine

El entorno flexible de App Engine usa un archivo llamado app.yaml para describir la configuración de implementación de una app. Si este archivo no está presente, la herramienta de línea de comandos de gcloud intentará predecir la configuración de implementación. Sin embargo, se recomienda proporcionar este archivo, ya que Rails requiere una clave secreta en un entorno de production.

Para configurar la app de muestra para tu implementación en App Engine, crea un archivo nuevo llamado app.yaml en la raíz del directorio de tu aplicación de muestra y agrega lo siguiente:

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

Configura la clave secreta de Rails

Cuando implementes una app de Rails en el entorno de producción, configura la variable de entorno SECRET_KEY_BASE en una clave secreta que se utiliza para proteger los datos de sesión del usuario. Esta variable de entorno se lee desde el archivo config/secrets.yml.

  1. Genera una clave secreta nueva.

    bundle exec rails secret
    
  2. Copia la clave secreta generada. Debes usar la clave secreta en el siguiente paso.

  3. Abre el archivo app.yaml que creaste anteriormente y agrega una sección env_variables. env_variables configura variables del entorno en production en el entorno flexible de App Engine. Tu app.yaml debería verse como el ejemplo a continuación, con [SECRET_KEY] reemplazado por la clave secreta copiada.

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

Configura una app en el entorno flexible de App Engine

Si es la primera vez que implementas una aplicación, debes crear una para el entorno flexible de App Engine para que te ayude a seleccionar la región en la que se ejecutará la app de Rails. Obtén más información sobre las regiones y zonas.

  1. Crea una aplicación de App Engine.

    gcloud app create
    
  2. Selecciona una región compatible con el entorno flexible de App Engine para apps de Ruby.

Implementa el entorno flexible de App Engine

  1. Antes de la implementación, compilar previamente los recursos de Rails:

    RAILS_ENV=production bundle exec rails assets:precompile
    
  2. Una vez que los recursos terminen de compilarse, implementa la muestra.

    gcloud app deploy
    

Espera a que aparezca el mensaje que informa que la actualización se completó. Esto puede tardar varios minutos.

Accede a la app de Rails implementada

  1. Para recuperar el ID de tu proyecto, ejecuta gcloud info.

  2. En tu navegador, ve a https://[PROJECT_ID].appspot.com.

    donde:

    • [PROJECT_ID] es el ID del proyecto que recuperaste en el primer paso.

Se muestra el siguiente contenido.

Captura de pantalla de la app de Rails nueva en ejecución

Esta vez, la app de Rails que se ejecuta en el entorno flexible de App Engine es la que atiende tu solicitud.

Este comando implementa la app como se describe en app.yaml y configura la versión recién implementada como la versión predeterminada, lo que hace que se haga cargo de todo el tráfico nuevo. A medida que la app se implementa, es posible que veas varios mensajes repetidos mientras que la plataforma verifica si la app está atendiendo. Esto es normal. Espera a que aparezca el mensaje que informa que la actualización de la app se completó.

Si actualizas tu app, podrás implementar la versión actualizada mediante el mismo comando que usaste para implementar la app por primera vez. La implementación nueva crea una versión nueva de tu app y la convierte a la versión predeterminada. Las versiones anteriores de la app se conservan, al igual que sus instancias de VM asociadas. Ten en cuenta que todas estas instancias de VM y versiones de la app son recursos facturables.

Lee los registros de App Engine

Ahora que implementaste tu app de Rails, te recomendamos leer los registros. Puedes leer los registros de la app con el Visor de registros ubicado en GCP Console o mediante el uso de gcloud app logs read. Para obtener más información, consulta Leer registros con el SDK de Cloud.

Limpia los recursos

Cuando termines el instructivo "Ejecución de Rails 5 en App Engine", puedes limpiar los recursos que creaste en Google Cloud Platform para evitar que se apliquen cargos en el futuro. Las siguientes secciones describen cómo borrar o desactivar estos recursos.

Borrar proyecto

La manera más fácil de borrar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

  1. En la GCP Console, dirígete a la página Proyectos.

    Ir a la página Proyectos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar.
  3. En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra una versión de App Engine

Para borrar la versión de una app:

  1. En GCP Console, dirígete a la página Versiones de App Engine.

    Ir a la página de Versiones

  2. Haz clic en la casilla de verificación junto a la versión de app no predeterminada que deseas borrar.
  3. Haz clic en el botón Borrar en la parte superior de la página para borrar la versión de la app.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión: