Neste laboratório, você vai implantar a API do aplicativo de teste no Google Compute Engine e aproveitar o Cloud Endpoints para fornecer funcionalidade de monitoramento.
Objetivos
Neste laboratório, você aprenderá a fazer o seguinte:
Criar uma especificação OpenAPI a partir da API REST do aplicativo de teste atual.
Implantar a especificação como um Cloud Endpoint.
Provisionar uma instância do Compute Engine com o Extensible Service Proxy para hospedar a API Cloud Endpoints.
Configuração e requisitos
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.
Faça login no Qwiklabs em uma janela anônima.
Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.
Quando tudo estiver pronto, clique em Começar o laboratório.
Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.
Clique em Abrir Console do Google.
Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.
Aceite os termos e pule a página de recursos de recuperação.
Ative o Google Cloud Shell
O Google Cloud Shell é uma máquina virtual com 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.
No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.
Clique em Continuar.
O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:
A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
Para listar o nome da conta ativa, use este comando:
Tarefa 1: preparação do aplicativo de estudo de caso
Nesta seção, você vai acessar o Cloud Shell, clonar o repositório git que contém o aplicativo de teste, definir as variáveis de ambiente e executar o app.
Clonar o código-fonte no Cloud Shell
Clone o repositório para este curso usando o comando abaixo:
Configurar e executar o aplicativo de estudo de caso
Mude para o diretório que contém os exemplos de arquivos deste laboratório:
cd ~/cloudendpoints/start
Para substituir a região padrão em um arquivo com a região atribuída pelo laboratório, execute os seguintes comandos:
export APP_REGION={{{project_0.startup_script.app_gcp_region | APP_REGION}}}
export REGION={{{project_0.default_region | REGION}}}
sed -i 's/us-central1/'"$REGION"'/g' prepare_environment.sh
sed -i 's/us-central/'"$APP_REGION"'/g' prepare_environment.sh
Para configurar o aplicativo de teste, execute este comando:
. prepare_environment.sh
Se solicitado, Vincular o papel à conta de serviço? (Y/n)?, insira n.
Observação: este arquivo de script:
Cria um aplicativo do App Engine
Cria o banco de dados do Datastore
Exporta as variáveis de ambiente GCLOUD_PROJECT e GCLOUD_BUCKET
Executa npm install
Cria entidades no Cloud Datastore
Instala uma ferramenta geradora de documentação da especificação OpenAPI, api2swagger
Imprime o ID do projeto do Google Cloud Platform
Se ERROR: (gcloud.functions.deploy) for exibido, tente novamente o comando gcloud functions deploy completo que é mostrado após a execução de cat ./prepare_environment.sh.
É possível executar gcloud functions list para verificar se a função foi criada e está disponível.
Observação: os avisos criados pela instalação do gerador da especificação OpenAPI podem ser ignorados com segurança neste laboratório.
Para iniciar o aplicativo da Web, execute o comando a seguir:
npm start
Agora o aplicativo está em execução no Cloud Shell.
No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para exibir o aplicativo de teste.
Adicione /api/quizzes/places ao fim do nome do host para modificar o URL. Substitua /?authuser=0 por /api/quizzes/places.
Observação: serão exibidos dados JSON retornados da API do aplicativo de teste correspondentes às perguntas do teste "places".
Anote o URL completo da API para usar mais tarde neste laboratório e salve o URL para colá-lo em um comando na próxima seção.
Observação:
o URL será semelhante a este: https://8080-cs-***.cloudshell.dev/api/quizzes/places
Clique em Verificar meu progresso para conferir o objetivo.
Configurar e executar o aplicativo do estudo de caso
Tarefa 2: geração de uma especificação OpenAPI
Nesta seção, você vai gerar uma especificação OpenAPI que vai formar a base para a implantação do Cloud Endpoint.
Criar uma especificação OpenAPI
Abra uma segunda janela do Cloud Shell.
Clique no sinal de adição no terminal para abrir uma guia nova.
Para alterar o diretório para a pasta de trabalho do Cloud Endpoints, execute o comando a seguir:
cd ~/cloudendpoints/start/endpoint
Atualize a variável de ambiente PATH para definir o caminho do comando api2swagger:
export PATH=$PATH:`npm root -g`/api2swagger/bin
Para instalar o pacote do Python api2swagger:
npm install -g api2swagger
Para gerar a especificação OpenAPI, execute o comando a seguir, substituindo [API_URL_FROM_CLIPBOARD] pelo URL da API salvo na etapa anterior do formulário https://8080-cs-.../api/quizzes/places:
api2swagger -e [API_URL_FROM_CLIPBOARD] -o ./quiz-api.json
Observação: a ferramenta api2swagger vai fazer a solicitação na API e exibir uma série de comandos. Se você não concluir a substituição adequada, um erro Nome do host inválido será exibido.
Insira as respostas aos comandos do api2swagger usando a tabela a seguir:
Comando
Resposta
Título da especificação Swagger?
API Quite Interesting Quiz
Descrição da especificação Swagger?
Uma API para o Quite Interesting Quiz
URL dos Termos de Serviço
(Pressione a tecla Enter)
Versão do programa da sua API?
(Pressione a tecla Enter)
Nome do contato?
(Pressione a tecla Enter)
URL do contato?
(Pressione a tecla Enter)
E-mail do contato?
(Pressione a tecla Enter)
Nome da licença?
(Pressione a tecla Enter)
URL da licença?
(Pressione a tecla Enter)
Sua API aceita http?
S
Escolha do caminho base da sua API
Selecione usando as setas para cima e para baixo:
❯ /api/quizzes
(Pressione a tecla Enter)
Uma explicação detalhada do comportamento da operação
Recebe perguntas para um teste
Um breve resumo do que o serviço faz
Recebe perguntas do teste
Outros documentos externos para esta operação?
(Pressione a tecla Enter)
String exclusiva usada para identificar a operação?
getQuizQuestions
Uma lista de tags para controle de documentação da API?
(Pressione a tecla Enter)
O caminho da API tem parâmetros dinâmicos?
S (pressione a tecla Enter)
Escolha de parâmetros dinâmicos no URL
Use as setas para cima e para baixo para acessar: ❯◉ places
Em seguida, pressione a barra de espaço para selecionar "places" e depois pressione Enter
Nome do parâmetro de URL
quizName
Descrição do parâmetro de URL?
Nome do quiz
Tipo de parâmetro de consulta?
Use as setas para cima e para baixo para selecionar: ❯ string
(Pressione a tecla Enter)
Observação: a ferramenta api2swagger vai exibir a saída da especificação OpenAPI.
Editar a especificação OpenAPI
No Cloud Shell, clique em Abrir editor.
Talvez seja necessário clicar em Abrir em nova janela se o bloqueio de cookies de terceiros estiver ativado.
Acesse cloudendpoints/start/endpoint.
No Editor de código do Cloud Shell, abra quiz-api.json.
Substitua o valor da chave "host" por um nome de host usando uma string no formato quiz-api.endpoints.[Project-ID].cloud.goog.
Observação: o exemplo a seguir mostra a modificação na linha host.
Substitua [GCP-Project-ID] pelo ID do projeto do GCP.
É possível encontrar o ID do projeto do GCP no painel à esquerda das instruções do laboratório, abaixo das suas credenciais.
endpoint/quiz-api.json
{
"swagger": "2.0",
"host": "quiz-api.endpoints.qwiklabs-gcp-XX-XXXX.cloud.goog",
"schemes": [
"https",
"http"
],
Observação: quando você implantar a especificação OpenAPI na próxima seção, a API Service Management vai usar o valor do host no arquivo de configuração de implantação para criar um novo serviço do Cloud Endpoints com o nome quiz-api.endpoints.[PROJECT-ID].cloud.goog (se não existir) e configurar o serviço de acordo com o arquivo de configuração OpenAPI.
O Cloud Endpoints usa nomes compatíveis com DNS para identificar serviços de maneira exclusiva. Como é garantido que os projetos no Google Cloud Platform terão nomes globalmente exclusivos, é possível usar o nome do projeto para criar um nome de serviço de API exclusivo. Também é possível associar seu próprio nome do DNS à API.
Salve o arquivo.
Implantar a especificação da API no Cloud Endpoints
Clique em "Abrir terminal" para retornar ao Cloud Shell.
Para implantar a especificação OpenAPI como um Cloud Endpoint, execute o comando
a seguir na janela do Cloud Shell:
gcloud endpoints services deploy quiz-api.json
Se você receber um erro como PERMISSION_DENIED: Ownership for domain name, verifique se o seu host no arquivo quiz-api.json corresponde ao formato sugerido, incluindo o ID do projeto correto.
Observação: a definição do serviço leva alguns minutos para ser implantada.
Você vai receber um aviso relacionado à API estar disponível para todos os clientes sem fornecer uma chave.
Para exibir o nome da configuração da OpenAPI, execute o comando a seguir:
gcloud endpoints configs list --service="quiz-api.endpoints.$GOOGLE_CLOUD_PROJECT.cloud.goog"
Observe que o ID do projeto foi inserido. É possível copiar o serviço da saída do comando deploy.
Observação: a configuração do serviço será retornada, incluindo
CONFIG_ID e SERVICE_NAME. Os dois valores serão necessários na próxima seção.
Tarefa 3: implantação do back-end da API
Nesta seção, você vai provisionar uma instância do Compute Engine para executar a implementação da API e o Extensible Service Proxy do Cloud Endpoints.
Criar uma instância do Compute Engine
No console do Cloud , acesse o Menu de navegação (☰) e clique em Compute Engine > Instâncias de VM.
Para criar uma instância, clique em Criar instância.
Na página Configuração da máquina, insira os valores dos seguintes campos:
Campo
Valor
Nome
endpoint-host
Região
Zona
Série
E2
Tipo de máquina > Núcleo compartilhado
e2-small
Clique em SO e armazenamento.
Clique em Alterar para começar a configurar o disco de inicialização e selecione os seguintes valores:
Sistema operacional: Debian
Versão: Debian GNU/Linux 11 (bullseye)
Clique em Rede.
Em Firewall, clique em Permitir tráfego HTTP.
Clique em Segurança.
Em Escopos de acesso, clique em Permitir acesso total a todas as APIs do Cloud.
Clique em Avançado.
Em Metadados, clique em + Adicionar item duas vezes.
Insira os seguintes valores de metadados:
endpoints-service-config-id
O CONFIG_ID do endpoint no formato: aaaa-mm-ddr0
endpoints-service-name
O SERVICE_NAME do endpoint no formato:
quiz-api.endpoints.<Project-ID>.cloud.goog
Clique em Criar.
Aguarde a conclusão do provisionamento da VM.
Observação: o provisionamento da instância do Compute Engine com o Debian vai levar cerca de 20 segundos.
Instalar e executar o back-end da API
Volte para a janela do Cloud Shell.
Para garantir que o diretório de trabalho esteja definido como a pasta endpoint, execute o comando a seguir:
cd ~/cloudendpoints/start/endpoint/
Para copiar os arquivos de origem do aplicativo do Cloud Shell para o endpoint-host, execute o seguinte comando:
gcloud compute scp ./quiz-api endpoint-host:~/ --recurse --zone={{{project_0.default_zone | ZONE}}}
Observação: talvez seja necessário criar uma chave SSH. É possível pressionar a tecla ENTER para cada comando, incluindo o S, para criar o diretório .ssh.
A cópia dos arquivos pode levar alguns segundos.
Volte para o console do Cloud Platform.
Na página do Compute Engine, para se conectar à máquina virtual endpoint-host, clique em SSH.
Observação: talvez seja necessário clicar duas vezes se você tiver um bloqueador de pop-ups. A conexão SSH vai levar alguns segundos para ser estabelecida.
Na janela do SSH endpoint-host, instale os pré-requisitos de software:
Ainda na segunda janela do SSH endpoint-host, execute o comando a seguir para editar o arquivo de configuração do nginx:
sudo nano /etc/default/nginx
Para modificar o arquivo, adicione a declaração a seguir após a configuração atual:
PORT=80
Salve o arquivo (pressione Ctrl+O e depois Enter).
Saia do nano (pressione Ctrl+X).
Para reiniciar o nginx, execute o comando a seguir:
sudo service nginx restart
Tarefa 4: teste e modificação do Cloud Endpoint
Nesta seção, você vai verificar a implantação do endpoint e modificar a configuração para permitir a veiculação com nome do host em vez de um endereço IP.
Invocar o Cloud Endpoint com o endereço IP
Volte para o console do Cloud Platform > Compute Engine.
Para abrir uma janela do navegador, clique no endereço IP externo da máquina virtual endpoint-host.
Observação: uma mensagem JSON que informa que O método não existe
será exibida na nova janela do navegador. Esse é o comportamento esperado, porque
você não associou um método a "/". Não é preciso fazer
nada.
Adicione /api/quizzes/places ao fim do URL.
Observação: serão exibidos dados JSON retornados da API de teste.
No menu de navegação do console do Cloud Platform, clique em Endpoints, e, em seguida, no endpoint implantado.
Observação: uma página de monitoramento para o endpoint quiz-api será exibida. Após alguns minutos, a solicitação feita no endpoint será mostrada.
Modificar e reimplantar a configuração do Cloud Endpoint
Retorne ao editor de código do Cloud Shell e selecione o arquivo quiz-api.json.
Para permitir que a API seja acessada pelo nome do host do Cloud Endpoint em vez do endereço IP, adicione a chave "x-google-endpoints" e o valor mostrado no seguinte fragmento de arquivo:
Para reimplantar a API, retorne à janela do Cloud Shell e execute o comando a seguir:
gcloud endpoints services deploy quiz-api.json
Abra uma nova guia do navegador e navegue até: http://quiz-api.endpoints.<Project-ID>.cloud.goog/api/quizzes/gcp.
Observação: você terá acesso a dados JSON do teste do GCP.
Tarefa 5: monitoramento da API
Nesta seção, você vai revisar a saída de monitoramento da API.
Inspecionar a API no console
Retorne ao console do Cloud Platform e, no menu de navegação, clique em Endpoints e, em seguida, no endpoint implantado.
Observação: uma página de informações gerais da API de teste será exibida.
Reserve uns minutos para conferir os gráficos de solicitações, latência e erros.
Observação: você vai notar que os gráficos de monitoramento permitem observar o desempenho da API à medida que ela executa solicitações de clientes.
Finalize o laboratório
Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.
Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.
O número de estrelas indica o seguinte:
1 estrela = muito insatisfeito
2 estrelas = insatisfeito
3 estrelas = neutro
4 estrelas = satisfeito
5 estrelas = muito satisfeito
Feche a caixa de diálogo se não quiser enviar feedback.
Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.
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 empresas e produtos podem ser marcas registradas das empresas a que estão associados.
Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
No canto superior esquerdo da tela, clique em Começar o laboratório
Usar a navegação anônima
Copie o nome de usuário e a senha fornecidos para o laboratório
Clique em Abrir console no modo anônimo
Fazer login no console
Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
Aceite os termos e pule a página de recursos de recuperação
Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto
Este conteúdo não está disponível no momento
Você vai receber uma notificação por e-mail quando ele estiver disponível
Ótimo!
Vamos entrar em contato por e-mail se ele ficar disponível
Um laboratório por vez
Confirme para encerrar todos os laboratórios atuais e iniciar este
Use a navegação anônima para executar o laboratório
Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
Neste laboratório, você vai implantar a API do aplicativo de teste no Compute Engine, aproveitando o Cloud Endpoints para fornecer funcionalidades de monitoramento e geração de registros.
Duração:
Configuração: 2 minutos
·
Tempo de acesso: 120 minutos
·
Tempo para conclusão: 120 minutos