Checkpoints
Build with Cloud Build
/ 25
REST API Deployed
/ 25
Firestore database created
/ 25
Build image revision 0.2
/ 25
Como desenvolver uma API REST com o Go e o Cloud Run
- GSP761
- Visão geral
- Objetivos
- Pré-requisitos
- Configuração e requisitos
- Tarefa 1: ative as APIs do Google
- Tarefa 2: como desenvolver a API REST
- Tarefa 3: importe os dados dos clientes fictícios para fazer os testes
- Tarefa 4: conecte a API REST ao banco de dados do Firestore
- Tarefa 6: teste rápido
- Tarefa 7: como implantar uma nova revisão
- Parabéns!
GSP761
Visão geral
Nos laboratórios do curso Serverless Cloud Run Development, você terá acesso a um cenário de negócios fictício e vai ajudar os personagens com o plano deles de migração sem servidor.
Há 12 anos, Lilian fundou a rede de clínicas veterinárias Pet Theory. À medida que a rede foi crescendo, Lilian começou a passar mais tempo no telefone com corretoras de seguro do que cuidando dos animais. Seria ótimo se as corretoras pudessem acessar on-line o valor total dos tratamentos.
Nos laboratórios anteriores desta série, Ruby, a consultora de informática, e Pedro, o engenheiro de DevOps, migraram o banco de dados de clientes da Pet Theory para um banco de dados sem servidor do Firestore na nuvem. Depois eles disponibilizaram o acesso para os clientes poderem marcar as consultas pela Internet. Como a Pet Theory só tem uma pessoa responsável pelas operações, a empresa precisa de uma solução sem servidor que não exija manutenção contínua.
Neste laboratório, você vai ajudar a Ruby e o Pedro a disponibilizar os dados dos clientes para as corretoras de seguro sem expor as informações de identificação pessoal (PII). Você vai criar um gateway seguro da API Representational State Transfer (REST) com o Cloud Run, que não precisa de servidor. Isso vai permitir que as seguradoras vejam o custo total dos tratamentos sem ter acesso às PII dos clientes.
Objetivos
O que você vai fazer neste laboratório:
- Desenvolver uma API REST com o Go
- Importar os dados de teste dos clientes para o Firestore
- Conectar a API REST ao banco de dados do Firestore
- Implantar a API REST no Cloud Run
Pré-requisitos
Este é um laboratório de nível intermediário, é preciso ter familiaridade com o console do Cloud e os ambientes do Cloud Shell. Este laboratório faz parte de uma série. É recomendável, mas não necessário, que você tenha concluído os laboratórios anteriores:
- Como importar dados para um banco de dados sem servidor
- Criar um app da Web sem servidor com o Firebase e o Firestore
- Criar um app sem servidor que gera arquivos PDF
Configuração e requisitos
Antes de clicar no botão Start Lab
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta. -
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}} Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}} Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais. -
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
- Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud.
Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
-
Clique em Autorizar.
-
A saída será parecida com esta:
Saída:
- (Opcional) É possível listar o ID do projeto usando este comando:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Lilian, fundadora da Pet Theory |
Oi, Ruby Lembra que na semana passada eu comentei que estava cheia de papelada e não saía do telefone com a seguradora? Queria saber se não tem um jeito de permitir que os representantes acessem os registros dos clientes de uma forma eficiente e segura. Estou sobrecarregada com tantas demandas. Você pode me ajudar? Lilian |
Ruby, consultora de software |
Oi, Lilian, Almocei com o Pedro ontem e criamos um plano para facilitar o acesso seguro de terceiros autorizados aos registros digitais da Pet Theory. O plano tem quatro etapas:
Eu e o Pedro já sabemos como executar as duas primeiras etapas, o que já é um bom começo. Queremos ter um protótipo operacional pronto até o final da semana. Ruby |
Ajude Ruby a gerenciar as atividades necessárias para criar a API REST da Pet Theory.
Tarefa 1: ative as APIs do Google
Neste laboratório, duas APIs foram ativadas para você:
Nome | API |
---|---|
Cloud Build | cloudbuild.googleapis.com |
Cloud Run | run.googleapis.com |
Tarefa 2: como desenvolver a API REST
- Ative seu projeto:
- Clone o repositório da Pet Theory e acesse o código-fonte:
-
Use o editor de texto que preferir ou o botão do editor de código na faixa de opções do Cloud Shell para acessar os arquivos
go.mod
ego.sum
. -
Crie o arquivo
main.go
e adicione o conteúdo abaixo ao arquivo:
- Agora crie um arquivo com o nome
Dockerfile
e inclua este código nele:
O arquivo server
é o binário de execução criado em main.go
.
- Execute o comando a seguir para criar o binário:
- Depois de executar o comando do build, verifique se você tem o Dockerfile e o servidor necessários no mesmo diretório:
Um Dockerfile modelo como o acima normalmente é usado sem alterações para a maioria dos apps do Cloud Run baseados em Go.
- Para implantar sua API REST simples, basta executar:
Esse comando cria um contêiner com seu código e o coloca no Container Registry do projeto. Clique em Menu de navegação > Container Registry para ver o contêiner. Se rest-api
não aparecer, clique em Atualizar.
Clique em Verificar meu progresso para conferir se você executou a tarefa.
- Depois que o contêiner for criado, faça a implantação:
- Quando a implantação estiver concluída, você vai receber uma mensagem como esta:
Clique em Verificar meu progresso para conferir se você executou a tarefa.
- Clique no URL do serviço que aparece no fim dessa mensagem para abri-lo em uma nova guia do navegador. Insira
/v1/
no final do URL e pressione Enter.
Você vai receber esta mensagem:
A API REST está configurada e em execução. Na próxima seção, a API vai ser usada para recuperar informações de clientes fictícios de um banco de dados do Firestore com o serviço de protótipo disponível.
Tarefa 3: importe os dados dos clientes fictícios para fazer os testes
Raquel, consultora de software |
Olá, Pedro, Você ainda tem os pseudodados dos clientes que criamos? Precisaremos deles para os testes. Você ainda se lembra de como configurar um banco de dados do Firestore e importar as informações? Ruby |
Pedro, administrador de TI |
Oi, Ruby, Sim, ainda tenho os dados de teste. Eu vou transferi-los para o Firestore hoje para fazermos os testes. Pedro |
Ruby e Pedro já criaram um banco de dados de teste com 10 clientes, que inclui alguns tratamentos propostos para o gato de um cliente.
Ajude Pedro a configurar o banco de dados do Firestore e a importar os dados de teste dos clientes. Primeiro ative o Firestore no projeto.
-
Volte ao console do Cloud e clique em Menu de navegação > Firestore.
-
Clique no botão Criar banco de dados.
-
Clique no botão Modo nativo e depois em Continuar.
-
Em Tipo de localização, selecione Região.
-
Selecione a região
na lista disponível e clique em Criar banco de dados.
Aguarde a criação do banco de dados antes prosseguir.
Clique em Verificar meu progresso para conferir se você executou a tarefa.
- Migre os arquivos de importação para um bucket do Cloud Storage criado para você:
- Agora importe esses dados para o Firebase:
Atualize o navegador do console do Cloud para conferir os resultados do Firestore.
- No Firestore, clique em clientes na seção "Padrão". Serão exibidos os dados dos animais de estimação que foram importados ao navegar. Caso não apareçam os dados, atualize a página.
Bom trabalho! O banco de dados do Firestore foi criado e preenchido com os dados de teste.
Tarefa 4: conecte a API REST ao banco de dados do Firestore
Ruby, consultora de software |
Oi, Lilian, Só queria avisar que Pedro e eu concluímos as duas primeiras tarefas da lista. Agora vou estruturar a API REST para acessar os dados dos clientes no Firestore. Ruby |
Lilian, fundadora da Pet Theory |
Oi, Ruby, Ótimo trabalho! Mal posso esperar para ver como será na próxima etapa. Lilian |
Nesta seção, você vai ajudar a Ruby a criar outro endpoint na API REST com a seguinte aparência:
Por exemplo, o URL deve retornar o total de tratamentos propostos e quantos foram aceitos e rejeitados pelo cliente com o ID 22530, se essas informações estiverem no banco de dados do Firestore:
Essa nova funcionalidade requer um pacote de acesso ao banco de dados do Firestore e outro que lida com o compartilhamento de recursos entre origens (CORS).
- Descubra o valor da variável de ambiente $GOOGLE_CLOUD_PROJECT
- Abra o arquivo
main.go
no diretório pet-theory/lab08.
- Substitua o conteúdo do arquivo pelo código abaixo, e verifique se
PROJECT_ID
está definido como:
- Adicione o suporte ao gerenciador no final do arquivo:
- Adicione o suporte ao cliente depois:
- Salve o arquivo.
Tarefa 6: teste rápido
Tarefa 7: como implantar uma nova revisão
- Recrie o código-fonte:
- Crie uma nova imagem para a API REST:
Clique em Verificar meu progresso para conferir o objetivo.
- Implante a imagem atualizada:
- Volte à guia do navegador que já aponta para esse URL (com
/v1/
no final). Atualize a guia para receber a mesma mensagem de antes, informando que a API ainda está em execução.
- Insira
/customer/22530
no URL do aplicativo na barra de endereço do seu navegador. Você vai receber esta resposta JSON com o total dos tratamentos propostos e quantos foram aceitos e rejeitados pelo cliente:
- Você também pode inserir estes outros IDs de cliente no URL:
- 34216
- 70156 (todos os valores devem ser zero)
- 12345 (o cliente/animal não existe, e você recebe uma mensagem de erro, como Query is nil)
Você criou uma API REST escalonável, de baixa manutenção, sem servidor e que lê as informações de um banco de dados.
Parabéns!
Parabéns! Neste laboratório, você ajudou Ruby e Pedro a criar um protótipo de API REST para a Pet Theory. Você criou uma API REST que se conecta com um banco de dados do Firestore e fez a implantação dela no Cloud Run. Além disso, você também testou a API para garantir que ela esteja funcionando conforme o esperado.
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 6 de maio de 2024
Laboratório testado em 6 de maio de 2024
Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.