Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Deploy de um app React no App Engine do Google

By Mike SparrAug 21, 20202 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Não é raro ver engenheiros vasculhando tutoriais e artigos atrás de uma forma de colocar um app (ou algum componente da stack) para rodar ou fazer o deploy.

Recentemente foi o caso de um cliente que estava com dificuldade para fazer o deploy do seu app React / NodeJS no App Engine do Google. Nosso time entrou em ação e, em menos de uma hora após a solicitação, ele já estava no ar.

Como já publiquei exemplos anteriormente de como dockerizar apps em React seguindo a metodologia 12-factor (usando variáveis de ambiente), resolvi testar por conta própria. Criei uma aplicação React simples com o create-react-app e fiz o deploy no App Engine usando o SDK gcloud do Google. Em poucos minutos estava tudo no ar, então achei que valia a pena compartilhar o que deu certo.

Objetivo

Se tudo der certo, em poucos minutos seguindo estas instruções você deve ver algo parecido com isto no seu navegador (com uma URL diferente, claro).

Exemplo do app React funcionando no App Engine em poucos minutos

Pré-requisitos

  • NodeJS instalado (no Mac, brew install node)
  • GCloud SDK instalado (instalar) e autenticado
  • Projeto ativo no Google Cloud Platform (GCP)

Script que funciona

Sem enrolação, foram estes os passos que funcionaram para mim. Você pode executá-los um a um ou simplesmente copiar este arquivo, torná-lo executável, trocar o ID do projeto e rodar localmente.

Em poucos minutos seu app deve estar rodando e acessível pelo navegador. Você também pode acessar o repositório de exemplo abaixo para um quickstart.

Limpeza

Para evitar cobranças inesperadas na sua conta da nuvem, exclua o projeto ou remova o app que você fez deploy usando o comando abaixo

# remove app engine service
gcloud app services delete <YOUR APP NAME># if warnings, potentially delete versions
gcloud app versions listgcloud app versions delete <VERSION ID> # repeat