Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Despliega una app de React en App Engine de Google

By Mike SparrAug 21, 20202 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

A veces los Engineers se pasan horas entre tutoriales y artículos intentando que su app o algún componente del stack funcione o se despliegue.

Hace poco nos tocó un caso así: un cliente no lograba desplegar su app de React / NodeJS en App Engine de Google. Nuestro equipo le echó la mano y en menos de una hora ya tenía todo funcionando.

Como ya había publicado ejemplos sobre cómo dockerizar apps de React siguiendo la metodología 12-factor (con variables ENV), quise probarlo por mi cuenta. Armé una aplicación básica de React con create-react-app y la desplegué en App Engine con el SDK gcloud de Google. Me alegra contarte que en cuestión de minutos ya estaba corriendo en la nube, así que aquí te comparto lo que me funcionó.

Objetivo

Si todo sale como está previsto, en pocos minutos deberías ver algo así en tu navegador después de seguir estas instrucciones (con una URL distinta, claro).

Ejemplo funcional de una app de React en App Engine en cuestión de minutos

Requisitos previos

  • NodeJS instalado (en Mac brew install node )
  • SDK de GCloud instalado ( instalar ) y autenticado
  • Un proyecto activo en Google Cloud Platform (GCP)

Script funcional

Sin más rodeos, estos son los pasos que me funcionaron. Puedes ejecutarlos uno por uno o, simplemente, copiar este archivo, darle permisos de ejecución, cambiar el ID del proyecto y correrlo en local.

En pocos minutos tu app debería estar corriendo y disponible desde el navegador. También puedes echarle un ojo al repositorio de ejemplo de abajo para arrancar rápido.

Limpieza

Para evitar cobros inesperados en tu cuenta de la nube, elimina el proyecto o quita la app que desplegaste con el siguiente comando

# eliminar servicio de app engine
gcloud app services delete <NOMBRE DE TU APP># si aparecen advertencias, es posible que debas eliminar versiones
gcloud app versions listgcloud app versions delete <ID DE VERSIÓN> # repetir