Implantar uma API gerenciada pelo Cloud Endpoints
Neste guia de início rápido, orientamos você na implantação de uma API de amostra, gerenciada pelo Endpoints. O código de amostra inclui:
- uma API REST que você pode consultar caso queira encontrar o nome de um aeroporto a partir do código IATA de três letras;
- um script que faz upload da configuração da API para o Endpoints;
- um script que implanta um back-end de ambiente flexível do App Engine para hospedar a API de amostra.
Depois de enviar solicitações para a API de exemplo, você pode conferir os gráficos de atividades do Endpoints e os registros de Observabilidade do Google Cloud no console do Google Cloud. Essas ferramentas permitem monitorar suas APIs e receber insights sobre seu uso.
Neste guia de início rápido, são usados scripts para simplificar as etapas de configuração para você ver rapidamente os gráficos de atividade e os registros em ação. Para saber como configurar e implantar uma API de amostra, escolha um tutorial de uma das bibliotecas de API:
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
Como iniciar o Cloud Shell
No console do Google Cloud, verifique se você está no projeto que quer usar para a API de amostra.
Abra o Cloud Shell.
Uma sessão do Cloud Shell é aberta em um novo frame na parte inferior do console do Google Cloud e exibe um prompt de linha de comando. A inicialização da sessão pode levar alguns segundos.
Se você estiver usando um projeto existente, verifique se tem a versão mais recente de todos os componentes
gcloud
instalados:gcloud components update
Obter o exemplo de código
No Cloud Shell, digite o seguinte comando para receber a API e os scripts de amostra:
git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
Acesse o diretório que contém o código de amostra:
cd endpoints-quickstart
Como implantar a configuração do Endpoints
Para publicar uma API REST no Endpoints, é necessário um arquivo de configuração OpenAPI que descreva a API. A API de exemplo vem com um arquivo OpenAPI pré-configurado chamado openapi.yaml
.
O Endpoints usa o Service Management, um serviço de infraestrutura do Google Cloud para criar e gerenciar APIs e serviços. Para usar o Endpoints para gerenciar uma API, implante o arquivo de configuração OpenAPI da API no Service Management.
Para implantar a configuração do Endpoints:
No Cloud Shell, no diretório
endpoints-quickstart
, digite o seguinte:cd scripts
Execute este script, que está incluso na amostra:
./deploy_api.sh
O Endpoints usa o campo host
no arquivo de configuração da OpenAPI para identificar o serviço. O script deploy_api.sh
define o ID do seu projeto do Google Cloud como parte do nome configurado no campo host
.
Quando você prepara um arquivo de configuração OpenAPI para seu próprio serviço, isso deve ser feito manualmente.
Em seguida, o script implanta a configuração da OpenAPI para o Service Management usando o comando: gcloud endpoints services deploy openapi.yaml
Como ele está criando e configurando o serviço, o Service Management envia
informações para o console do Google Cloud. Ignore os avisos sobre os caminhos em openapi.yaml
que não exigem uma chave de API. Na conclusão bem-sucedida, você vê uma linha semelhante à seguinte, que exibe o código de configuração do serviço e o nome do serviço:
Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]
Ativação de serviços obrigatórios
No mínimo, o Endpoints requer que os seguintes serviços do Google estejam ativados:
Nome | Título |
---|---|
servicecontrol.googleapis.com |
API Service Control |
servicemanagement.googleapis.com |
Service Management API |
Na maioria dos casos, a implantação da configuração do Endpoints ativa os serviços necessários.
Use o seguinte comando para confirmar se os serviços necessários estão ativados:
gcloud services list
Se você não encontrar os serviços necessários listados, ative-os:
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Ative também seu serviço do Endpoints:
gcloud services enable YOUR-PROJECT-ID.appspot.com
Para mais informações sobre os comandos gcloud
, consulte serviços gcloud
.
Implantar o back-end da API
Até agora, você implantou a configuração de OpenAPI no Service Management, mas ainda não implantou o código para exibir o back-end da API. O script deploy_app.sh
incluído no exemplo cria um ambiente flexível do App Engine para hospedar o back-end da API e, em seguida, implanta a API no App Engine.
Para implantar o back-end da API:
No Cloud Shell, no diretório
endpoints-quickstart/scripts
, execute o seguinte script:./deploy_app.sh
O script executa o seguinte comando para criar um ambiente flexível do App Engine na região us-central
: gcloud app create --region="$REGION"
A criação do back-end do ambiente flexível do App Engine leva alguns minutos. Depois que o aplicativo é criado, a saída é:
Success! The app is now created.
Em seguida, o script executa o comando gcloud app deploy
para implantar a API de amostra no App Engine.
A saída é:
Deploying ../app/app_template.yaml...You are about to deploy the following services:
A implantação da API no App Engine leva alguns minutos. Quando a API é implantada com sucesso no App Engine, a saída é:
Deployed service [default] to [https://example-project.appspot.com]
Como enviar solicitações à API
No Cloud Shell, depois de implantar a API de amostra, você pode enviar solicitações para ele executando o seguinte script:
./query_api.sh
O script ecoa o comando curl
que ele usa para enviar uma solicitação à API e, em seguida, exibe o resultado. A saída é:
curl "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
A API espera um parâmetro de consulta, iataCode
, que está definido como um código do aeroporto IATA válido, como SEA
ou JFK
. Por exemplo:
./query_api.sh JFK
Observação: o App Engine pode levar alguns minutos para responder às solicitações. Se você enviar uma solicitação e receber um erro HTTP 502, 503 ou outro erro de servidor, aguarde um minuto e tente enviar a solicitação novamente.
Você acaba de implantar e testar uma API no Endpoints.
Rastrear a atividade da API
Com as APIs implantadas com o Endpoints, você pode monitorar métricas de operações importantes no console do Google Cloud e receber insights sobre seus usuários e o uso com o Cloud Logging.
No Cloud Shell, execute o script de geração de tráfego para preencher os gráficos e registros:
./generate_traffic.sh
No console do Google Cloud, confira os gráficos de atividade da sua API.
Ir para a página Serviços do Endpoints
Pode levar alguns instantes para que as solicitações sejam refletidas nos gráficos. Enquanto você espera os dados serem exibidos:
Se o painel lateral "Permissões" não estiver aberto, clique em + Permissões. O painel Permissões permite controlar quem tem acesso à sua API e o nível de acesso.
Clique em Histórico de implantação. Esta guia exibe um histórico de implantações da API, inclusive o horário da implantação e quem fez a alteração.
Clique em Visão geral. Você vê o tráfego entrando. Depois que o script de geração de tráfego estiver em execução por um minuto, você vê três linhas no gráfico de Latência total (percentis 50, 95 e 98). Esses dados fornecem uma estimativa dos tempos de resposta.
Role a tela até a tabela abaixo dos gráficos e, em Links, clique em Exibir registros paraGET/airportName. A página Visualizador de registros exibirá os registros de solicitações da API.
Abra o Cloud Shell.
Para interromper o script, digite
Control+C
.
Como adicionar uma cota à API
O Endpoints permite definir cotas que permitem controlar a taxa na qual os aplicativos podem chamar a API. Você pode usar cotas para proteger sua API de uso excessivo por um único cliente.
No Cloud Shell, implemente a configuração do Endpoints que tem uma cota.
./deploy_api.sh ../openapi_with_ratelimit.yaml
Após a implantação de uma configuração atualizada do Endpoints, ela fica ativa em um minuto.
No Console do Google Cloud, acesse a página Credenciais.
Clique em Criar credenciais e, em seguida, clique em Chave de API. Uma nova chave de API é exibida na tela.
Clique em Copiar file_copy.
No Cloud Shell, digite o seguinte comando. Substitua
YOUR_API_KEY
pela chave de API que você acabou de criar.export API_KEY=YOUR_API_KEY
Envie uma solicitação à API usando a chave de API recém-gerada.
./query_api_with_key.sh $API_KEY
A resposta será semelhante a:
curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
Agora, a API tem um limite de cinco solicitações por minuto. Execute o comando a seguir para enviar o tráfego para a API e acionar o limite da cota.
./generate_traffic_with_key.sh $API_KEY
Depois de executar o script de 5 a 10 segundos, digite
Control+C
para interromper o script.Envie outra solicitação autenticada à API.
./query_api_with_key.sh $API_KEY
O resultado será semelhante a:
{ "code": 8, "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer 'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "stackEntries": [], "detail": "internal" } ] }
Se você receber uma resposta diferente, tente executar o script generate_traffic_with_key.sh
novamente e, em seguida, tente novamente.
Parabéns! Você criou uma limitação de taxa para sua API. Você também pode definir limites variados em diferentes métodos de API, criar vários tipos de cotas e acompanhar quais consumidores usam quais APIs.
Para mais informações, consulte Sobre cotas.
Como criar um portal do desenvolvedor para a API
É possível usar o Portal do Cloud Endpoints para criar um portal do desenvolvedor, um site para interagir com a API de amostra. Para saber mais, consulte a Visão geral do Portal do Cloud Endpoints.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
Para evitar cobranças, você pode excluir seu projeto do Google Cloud para interromper o faturamento de todos os recursos usados naquele projeto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
Para uma visão geral do Endpoints:
Para aprender sobre os diferentes frameworks de API compatíveis com o Endpoints:
Para saber como configurar e implantar uma API de amostra, escolha um tutorial de uma das bibliotecas de API: