arrow_back

Desenvolvimento de apps – Como implantar uma API para o aplicativo de teste: Node.js

Acesse mais de 700 laboratórios e cursos

Desenvolvimento de apps – Como implantar uma API para o aplicativo de teste: Node.js

Laboratório 2 horas universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Informações gerais

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.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. 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.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. 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.

  7. 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.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. 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:

ID do projeto em destaque no terminal do Cloud Shell

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:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

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

  1. Clone o repositório para este curso usando o comando abaixo:
git clone --depth=1 https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Crie um link flexível como atalho para o diretório de trabalho:
ln -s ~/training-data-analyst/courses/developingapps/v1.3/nodejs/cloudendpoints ~/cloudendpoints

Configurar e executar o aplicativo de estudo de caso

  1. Mude para o diretório que contém os exemplos de arquivos deste laboratório:
cd ~/cloudendpoints/start
  1. 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
  1. 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.
  1. Para iniciar o aplicativo da Web, execute o comando a seguir:
npm start

Agora o aplicativo está em execução no Cloud Shell.

  1. No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para exibir o aplicativo de teste.
  2. 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".
  1. 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

  1. Abra uma segunda janela do Cloud Shell.

  2. Clique no sinal de adição ícone de adição no terminal para abrir uma guia nova.

  3. Para alterar o diretório para a pasta de trabalho do Cloud Endpoints, execute o comando a seguir:

cd ~/cloudendpoints/start/endpoint
  1. Atualize a variável de ambiente PATH para definir o caminho do comando api2swagger:
export PATH=$PATH:`npm root -g`/api2swagger/bin
  1. Para instalar o pacote do Python api2swagger:
npm install -g api2swagger
  1. 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.
  1. 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

  1. 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.

  1. Acesse cloudendpoints/start/endpoint.
  2. No Editor de código do Cloud Shell, abra quiz-api.json.
  3. 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.
  1. Salve o arquivo.

Implantar a especificação da API no Cloud Endpoints

  1. Clique em "Abrir terminal" para retornar ao Cloud Shell.

  2. 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.
  1. 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

  1. No console do Cloud , acesse o Menu de navegação (☰) e clique em Compute Engine > Instâncias de VM.
  2. Para criar uma instância, clique em Criar instância.
  3. 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

  1. 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)
  2. Clique em Rede.

  3. Em Firewall, clique em Permitir tráfego HTTP.

  4. Clique em Segurança.

  5. Em Escopos de acesso, clique em Permitir acesso total a todas as APIs do Cloud.

  6. Clique em Avançado.

  7. Em Metadados, clique em + Adicionar item duas vezes.

  8. 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

  1. 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

  1. Volte para a janela do Cloud Shell.
  2. Para garantir que o diretório de trabalho esteja definido como a pasta endpoint, execute o comando a seguir:
cd ~/cloudendpoints/start/endpoint/
  1. 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.
  1. Volte para o console do Cloud Platform.
  2. 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.
  1. Na janela do SSH endpoint-host, instale os pré-requisitos de software:
sudo apt-get install ca-certificates curl gnupg -y sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt-get update sudo apt-get install nodejs -y

Clique em Verificar meu progresso para conferir o objetivo.

Crie uma instância do Compute Engine e instale os pré-requisitos de software
  1. Para executar o aplicativo API de teste, execute os comandos a seguir na sessão do SSH:
export GCLOUD_PROJECT="$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/project/project-id)" export GCLOUD_BUCKET=$GCLOUD_PROJECT-media export PORT=8081 cd ~/quiz-api npm install npm start
  1. Volte ao console do Cloud Platform, que continua a exibir a lista de instâncias de VM do Compute Engine.
  2. Estabeleça uma segunda conexão SSH com endpoint-host.
  3. Na segunda janela do SSH endpoint-host, execute os comandos a seguir para instalar o Extensible Service Proxy do Cloud Endpoints:
export CLOUD_ENDPOINTS_REPO="google-cloud-endpoints-jessie" echo "deb http://packages.cloud.google.com/apt $CLOUD_ENDPOINTS_REPO main" | sudo tee /etc/apt/sources.list.d/google-cloud-endpoints.list curl --silent https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update && sudo apt-get install endpoints-runtime
  1. 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
  1. Para modificar o arquivo, adicione a declaração a seguir após a configuração atual:
PORT=80
  1. Salve o arquivo (pressione Ctrl+O e depois Enter).
  2. Saia do nano (pressione Ctrl+X).
  3. 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

  1. Volte para o console do Cloud Platform > Compute Engine.
  2. 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.
  1. Adicione /api/quizzes/places ao fim do URL.
Observação: serão exibidos dados JSON retornados da API de teste.
  1. 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

  1. Retorne ao editor de código do Cloud Shell e selecione o arquivo quiz-api.json.
  2. 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:

endpoint/quiz-api.json

{ "swagger": "2.0", "host": "quiz-api.endpoints.<Project-ID>.cloud.goog", "x-google-endpoints": [ { "name": "quiz-api.endpoints.<Project-ID>.cloud.goog", "target": "<endpoint-host-EXTERNAL-IP-ADDRESS>" } ], "schemes": [ "https", "http" ],
  1. Altere os valores de <Project-ID> e <endpoint-host-EXTERNAL-IP-ADDRESS> e salve o arquivo.

A configuração atualizada será semelhante a esta:

{ "swagger": "2.0", "host": "quiz-api.endpoints.qwiklabs-gcp-04-a7b3469e256f.cloud.goog", "x-google-endpoints": [ { "name": "quiz-api.endpoints.qwiklabs-gcp-04-a7b3469e256f.cloud.goog", "target": "34.172.61.246" } ], "schemes": [ "https", "http" ],
  1. Para reimplantar a API, retorne à janela do Cloud Shell e execute o comando a seguir:
gcloud endpoints services deploy quiz-api.json
  1. 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

  1. 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.
  1. 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.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. 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.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. 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.