Este tutorial é para quem está começando a criar apps na nuvem, como engenheiros e desenvolvedores da Web que querem aprender os conceitos principais do desenvolvimento de apps no Google Cloud.
Objetivos
- Conhecer ferramentas básicas do Google Cloud, como o Console do Google Cloud e a
gcloud
. - Implantar seu app no ambiente padrão do App Engine.
- Manter seus dados no Firestore.
- Armazenar uploads de arquivos no Cloud Storage.
- Monitore seu aplicativo usando o pacote de operações do Google Cloud.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
As instruções deste documento foram criadas para manter o uso de seus recursos dentro
dos limites do nível Sempre gratuito do Google Cloud.
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Para criar um banco de dados do Firestore no modo nativo, conclua as seguintes etapas:
-
No Console do Cloud, acesse a página do visualizador do Firestore.
Acessar o visualizador do Firestore - Na tela Selecione um modo do Cloud Firestore, clique em Selecionar Modo nativo.
- Selecione um local para seu banco de dados do Firestore. Essa configuração é o local padrão de recurso do Google Cloud para seu projeto do Cloud . O local é usado para serviços do seu projeto do Google Cloud que exigem uma configuração desse tipo, especificamente, o bucket padrão do Cloud Storage e o aplicativo do App Engine.
- Clique em Criar banco de dados.
-
No Console do Cloud, acesse a página do visualizador do Firestore.
-
Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.
-
Clone o repositório de amostra e abra o aplicativo de amostra no Cloud Shell:
Acessar o Cloud ShellO Cloud Shell oferece acesso de linha de comando aos seus recursos do Google Cloud diretamente no navegador.
- Para fazer o download do código de exemplo e passar para o diretório do app, clique em Continuar.
-
No Cloud Shell, configure a ferramenta
gcloud
para usar seu novo projeto do Google Cloud:# Configure gcloud for your project gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você criou usando o Console do Cloud.
A CLI do Google Cloud é a principal maneira de interagir com seus recursos do Google Cloud na linha de comando. Neste tutorial, você usará a ferramenta
gcloud
para implantar e monitorar seu app.
Como executar o aplicativo
- Instale as dependências do app usando
bundler
:bundle install
-
Execute o
rails server:
GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você criou. - No Cloud Shell, clique em Visualização da Web e selecione Visualizar na porta 8080. Uma nova janela será aberta com o app em execução.
Como implantar o app no App Engine
O Google Cloud oferece várias opções de execução do código. Neste exemplo, você usa o App Engine para implantar um app escalonável no Google Cloud. Não é necessário usar configurações na implantação nem gerenciar servidores. Com o App Engine, você se dedica a escrever o código. Além disso, o App Engine é escalonado automaticamente para dar suporte aos picos de tráfego repentinos.
O arquivoapp.yaml
contém a principal configuração para implantar no App Engine:
-
Na janela de terminal, implante o aplicativo no App Engine usando a CLI
gcloud
:# on the command-line gcloud app deploy
-
No navegador da Web, digite este URL:
https://PROJECT_ID.REGION_ID.r.appspot.com
Substitua:
PROJECT_ID
: é o ID do projeto do Google Cloud.REGION_ID
: um código que o App Engine atribui ao seu app
Para mais informações sobre como implantar no App Engine, consulte o ambiente de execução do Ruby 2.5.
Como manter os dados no Firestore
Não é possível armazenar informações em suas instâncias do App Engine porque os dados são perdidos se a instância é reiniciada e deixam de existir quando novas instâncias são criadas. No entanto, é possível usar um banco de dados no qual todas as suas instâncias possam ler e gravar dados.
O Google Cloud oferece várias opções para armazenar seus dados. Neste exemplo, você usa o Firestore para armazenar os dados de cada livro. O Firestore é um banco de dados de documentos NoSQL totalmente gerenciado e sem servidor, que permite armazenar e consultar dados. Ele é escalonado automaticamente para atender às necessidades do app, sendo reduzido a zero quando não estiver sendo usado. Adicione seu primeiro livro agora.
-
No navegador da Web, digite este URL:
https://PROJECT_ID.REGION_ID.r.appspot.com
Substitua:
PROJECT_ID
: é o ID do projeto do Google Cloud.REGION_ID
: um código que o App Engine atribui ao seu app
-
Para criar um livro para seu app implantado, clique em Adicionar livro.
- No campo Título, insira
Moby Dick
. - No campo Autor, insira
Herman Melville
. -
Clique em Salvar. Agora há uma entrada em seu app Bookshelf.
- No Console do Cloud, para atualizar a página do Firestore clique em Atualizar refresh. Os dados são exibidos no Firestore. O app Bookshelf armazena cada livro como um documento do Firestore com um ID exclusivo. Todos esses documentos são armazenados em uma coleção do Cloud Firestore. Para os fins deste tutorial, a coleção é chamada de books.
O Firestore armazena os livros usando a biblioteca de cliente do Firestore (em inglês). Veja a seguir um exemplo de como buscar um documento do Firestore:
Para mais informações sobre como usar o Firestore, consulte Como adicionar dados ao Firestore.
Como armazenar uploads de arquivos no Cloud Storage
Agora que você adicionou um livro, é hora de adicionar a imagem da capa. Não é possível armazenar arquivos em suas instâncias. Um banco de dados não é a opção correta para arquivos de imagem. Em vez disso, use o Cloud Storage.
O Cloud Storage é o principal repositório de blobs do Google Cloud. Use o Cloud Storage para hospedar recursos de app que você quer compartilhar em todo o Google Cloud. Para usar o Cloud Storage, você precisa criar um bucket do Cloud Storage, um contêiner básico para guardar seus dados.
- No Console do Cloud, acesse a página Navegador do Cloud Storage.
- Clique em Criar bucket.
- Na caixa de diálogo Criar bucket, insira um nome para ele, anexando o
ID do projeto do Google Cloud à string
_bucket
, de modo que o nome fique assim:YOUR_PROJECT_ID_bucket
. Este nome está sujeito aos requisitos de nome de bucket. Todos os demais campos permanecem nos valores padrão. - Clique em Criar.
- Após a criação do bucket, libere o acesso público aos objetos para que os usuários consigam vê-los. Para saber como fazer isso, consulte Como tornar os dados públicos.
-
Clique em Editar livroe selecione uma
imagem para carregar como a capa. Por exemplo, é possível usar este arquivo de domínio público:
-
Clique em Salvar. Você será redirecionado para a
página inicial onde há uma entrada do seu app Bookshelf.
O app Bookshelf envia os arquivos carregados para o Cloud Storage usando a biblioteca de cliente do Cloud Storage.
Para mais informações sobre como usar o Cloud Storage, consulte a lista de guias de instruções.
Como monitorar seu aplicativo usando o pacote de operações do Google Cloud
Você implantou seu app, depois criou e modificou livros. Para monitorar esses eventos para seus usuários, use o Gerenciamento do desempenho de aplicativos.
Monitore registros com o Cloud Logging
Cloud Console
-
No navegador, acesse o URL
/logs
em seu app:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Isso envia uma entrada personalizada para o Cloud Logging. A entrada tem gravidade de registro
NOTICE
e contém a mensagem "Você acionou uma entrada de registro personalizada. Bom trabalho!". -
Acesse o Visualizador de registros,
onde é possível monitorar seu app em tempo real. Quando acontece algo errado, este é
um dos primeiros lugares que você precisa verificar.
-
Na lista suspensa de recursos, selecione
GAE Application
. -
Na lista suspensa de registros, selecione Todos os registros.
Há uma linha para a entrada de registro personalizada.
gcloud
-
Na janela de terminal, use a CLI do Google Cloud para monitorar os registros do app escutando novas entradas:
gcloud app logs tail
-
No navegador, acesse o URL
/logs
em seu app:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Isso envia uma entrada personalizada para o Cloud Logging. A entrada tem gravidade de registro
NOTICE
e contém a mensagem "Você acionou uma entrada de registro personalizada. Bom trabalho!".A saída do comando
gcloud
exibe a nova entrada de registro:Waiting for new log entries... 2019-03-27 22:17:01 default[20190327t151430] "Hey, you triggered a custom log entry. Good job!"
Monitore erros com o Error Reporting
-
No Console do Cloud, acesse a página Error Reporting.
Acessar a página Error Reporting
O Error Reporting destaca os erros e as exceções em seu app, além de permitir que você configure alertas para eles. -
No navegador, acesse o URL
/errors
em seu app.
https://PROJECT_ID.REGION_ID.r.appspot.com/errors
Isso gera uma nova exceção de teste e a envia ao pacote de operações do Google Cloud.
-
No Console do Cloud, volte para a página Error Reporting e aguarde alguns instantes para ver o novo erro. Clique em Recarregar automaticamente para não precisar atualizar manualmente a página.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Exclua o projeto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.