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 neste documento foram criadas para manter seu uso de recursos dentro dos limites do Sempre gratuito do Google Cloud. camada.
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
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
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.
-
Ative as APIs App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting.
-
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
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.