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 que se aplicam a Google Cloud.
Objetivos
- Conhecer ferramentas básicas Google Cloud , como o Google Cloud console e a
gcloud. - Implantar seu app no Cloud Run.
- Manter seus dados no Firestore.
- Armazenar uploads de arquivos no Cloud Storage.
- Monitorar seu app usando o Google Cloud Observability.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
As instruções deste documento foram criadas para manter o uso dos seus recursos dentro
dos limites do Google Cloud's Sempre sem custos financeiros
do nível.
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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 Google Cloud console do, acesse a página Criar banco de dados 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 padrão Google Cloud de recurso para seu Google Cloud projeto . Esse local é usado em Google Cloud serviços no seu Google Cloud projeto do Cloud que exigem uma configuração de local, especificamente, o bucket padrão do Cloud Storage e o app Cloud Run.
- Clique em Criar banco de dados.
-
No Google Cloud console do, acesse a página Criar banco de dados do Firestore.
-
Ative as APIs Cloud Run, Cloud Storage JSON, Cloud Logging e Error Reporting.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão com o papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis. -
Clone o repositório de amostra e abra o aplicativo de amostra no Cloud Shell:
Acessar o Cloud ShellO Cloud Shell oferece acesso por linha de comando aos seus Google Cloud recursos diretamente no navegador.
- No prompt para clonar o repositório, clique em Confirmar.
-
No Cloud Shell, configure a ferramenta
gcloudpara usar seu novo Google Cloud projeto:# Configure gcloud for your project gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo Google Cloud ID do projeto que você criou usando o Google Cloud console.
A Google Cloud CLI é a maneira principal de interagir com seus Google Cloud recursos na linha de comando. Neste tutorial, você usará a ferramenta
gcloudpara implantar e monitorar seu app.
Executar o app
-
Execute o app:
SubstituaGOOGLE_CLOUD_PROJECT=PROJECT_ID dotnet run
PROJECT_IDpelo Google Cloud ID do projeto 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 Cloud Run
Google Cloud oferece várias opções para executar seu código. Neste exemplo, você usa Cloud Run para implantar um aplicativo escalonável no Google Cloud. Sem gerenciamento de servidor, o Cloud Run permite que você se concentre na escrita do código. Além disso, o Cloud Run é escalonado automaticamente para suportar picos de tráfego repentinos.
O Dockerfile informa ao Cloud Run como executar o aplicativo:Dockerfiles pode ser mais potente, mas essa configuração funciona para muitos aplicativos.
O Cloud Run informa ao seu aplicativo qual porta atender, configurando a variável de ambiente PORT. O Program.cs
de Bookshelf contém código para
observar a variável PORT e atender nessa porta:
Na janela do seu terminal, implante o aplicativo no Cloud Run usando a CLI gcloud:
-
Crie o aplicativo localmente.
dotnet publish -c Release
-
Use o Cloud Build para criar um contêiner do Docker e publicar no Container Registry.
gcloud builds submit --tag gcr.io/PROJECT_ID/bookshelf \ bin/Release/netcoreapp2.1/publish
-
Execute o contêiner com o Cloud Run.
Agora, é possível visualizar o aplicativo no URL exibido na saída degcloud run deploy bookshelf --region us-central1 --platform managed \ --image gcr.io/PROJECT_ID/bookshelf --allow-unauthenticated
gcloud run:Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving traffic at https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app
-
Copie o URL no seu navegador da Web para visualizar o aplicativo.
Para mais informações sobre a implantação no Cloud Run, consulte a documentação do Cloud Run.
Manter seus dados no Firestore
Não é possível armazenar informações nas suas instâncias do Cloud Run porque elas serão perdidas se a instância for reiniciada e deixarão de existir quando novas instâncias forem criadas. No entanto, é possível usar um banco de dados no qual todas as suas instâncias possam ler e gravar dados.
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.
-
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 Google Cloud console do, acesse o Cloud Firestore. Acessar o Cloud Firestore
Os dados são exibidos no Firestore. O aplicativo Bookshelf armazena cada livro como um documento do Firestore com um ID exclusivo. Todos esses documentos são armazenados em uma coleção do Firestore. Para os fins deste tutorial, a coleção é chamada de books.
O Firestore armazena os livros usando a biblioteca de cliente do Firestore. 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.
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 Google Cloud console do, acesse a página Buckets do Cloud Storage.
- Clique em Criar bucket.
- Na caixa de diálogo Criar bucket, digite um nome para ele, adicionando seu
Google Cloud ID de projeto à string
_bucketpara que nome pareça algo comoYOUR_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 introdução do Cloud Storage.
Monitorar seu app usando o Google Cloud Observability
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
-
No console do Google Cloud, acesse o Explorador de registros.
Acessar o Explorador de registrosÉ possível monitorar seu app em tempo real. Se encontrar problemas em seu app, este é o primeiro lugar a ser verificado.
- Na lista suspensa Recurso, selecione Revisão do Cloud Run, bookshelf.
Monitore erros com o Error Reporting
-
No Google Cloud console do, 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
/Home/ThrowURL no seu app.
Por exemplo, se seu aplicativo estiver hospedado em https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app, acesse https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app/Home/Throw.Isso gera uma nova exceção de teste e a envia ao Google Cloud Observability.
-
No Google Cloud console do , 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.
Excluir o projeto
- No Google Cloud console, 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.