Primeiros passos com o Endpoints no Cloud Functions

Neste tutorial, mostramos como configurar e implantar uma API de amostra e o Extensible Service Proxy (ESP) a ser executado em uma instância no ambiente flexível do App Engine. A REST API do código de amostra será descrita com a especificação OpenAPI. Além disso, você também aprenderá a criar uma chave de API e usá-la em solicitações para essa API.

Para ter uma visão geral do Cloud Endpoints, consulte Sobre o Endpoints e Arquitetura do Endpoints.

Lista de tarefas

Ao seguir o tutorial, use a lista geral de tarefas abaixo. Para enviar solicitações à API, é necessário concluir todas as tarefas.

  1. Configure um projeto do Cloud Platform, instale o software exigido e participe dos programas de acesso antecipado necessários. Consulte Antes de começar.
  2. Implante o Cloud Functions como o back-end da API.
  3. Configure o arquivo openapi-functions.yaml para representar a API e fazer o roteamento para o Cloud Functions.
  4. Implante a configuração do Endpoints para criar um serviço dele. Consulte Como implantar a configuração do Endpoints.
  5. Implante o contêiner de proxy do Endpoints no Cloud Run.
  6. Configure o IAM para permitir que o proxy do Endpoints chame o Cloud Functions.
  7. Envie uma solicitação à API. Consulte Como enviar uma solicitação à API.
  8. Rastreie a atividade da API. Consulte Como rastrear a atividade da API.
  9. Evite cobranças na sua conta do Google Cloud Platform. Consulte Fazer a limpeza.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do Google Cloud Platform.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.

    Saiba como ativar o faturamento

  4. Anote o código do projeto. Ele será necessário mais adiante.
  5. Você precisará que um aplicativo envie solicitações à API de amostra.

    • Usuários do Linux e Mac: neste tutorial, há um exemplo com curl que geralmente vem pré-instalado no sistema operacional. Se curl não estiver instalado, faça o download dele na página Versões e downloads do curl.
    • Usuários do Windows: neste tutorial, há um exemplo com Invoke-WebRequest que é compatível com o PowerShell 3.0 ou superior.
  6. Faça o download do Google Cloud SDK.
  7. Atualize o SDK do Cloud e instale os componentes do Endpoints.
    gcloud components update
  8. Verifique se o SDK do Cloud (gcloud) está autorizado a acessar os dados e serviços no Google Cloud Platform:
    gcloud auth login
    Uma nova guia do navegador será aberta, e você precisará escolher uma conta.
  9. Defina o projeto padrão como o código do projeto.
    gcloud config set project [YOUR_PROJECT_ID]

    Substitua [YOUR_PROJECT_ID] pelo código do projeto. Se você tiver outros projetos do Cloud Platform e quiser usar o gcloud para gerenciá-los, consulte Como gerenciar configurações do SDK do Cloud.

Como implantar o Cloud Functions

NodeJS

  

Como configurar o Endpoints

O código de amostra inclui o arquivo de configuração OpenAPI, openapi-functions.yaml, baseado na especificação OpenAPI v2.0.

Para configurar o Endpoints, faça o seguinte:
  1. No diretório do código de amostra, abra o arquivo de configuração openapi-functions.yaml.

    host: gcf.endpoints.YOUR-PROJECT-ID.cloud.goog
    paths:
      /users/{user}:
        get:
          x-google-backend:
            address: https://REGION-YOUR-PROJECT-ID.cloudfunctions.net/getUser
          ...
        post:
          x-google-backend:
            address: https://REGION-YOUR-PROJECT-ID.cloudfunctions.net/createUser
          ...
    

    Observe o seguinte:

    • É necessário modificar as linhas próximas ao campo host, exibidas no exemplo de configuração. Para implantar openapi-functions.yaml no Cloud Endpoints, o documento completo do OpenAPI é exigido.
    • O OpenAPI é uma especificação que não depende de linguagem. O mesmo arquivo openapi-functions.yaml está na amostra de primeiros passos em cada repositório do GitHub de linguagem para fins de conveniência.
  2. Na linha com o campo host, substitua YOUR-PROJECT-ID pelo código do projeto do Cloud.
  3. Substitua YOUR-PROJECT-ID pelo código do projeto do Cloud e REGION pela região do GCP em que as funções estão implantadas.

O Cloud Endpoints usa o texto configurado no campo host como o nome do serviço. Quando você implanta a API, uma entrada de DNS é criada automaticamente com um nome no formato gcf.endpoints.YOUR-PROJECT-ID.cloud.goog.

Para mais informações sobre os campos no documento do OpenAPI exigido pelo Cloud Endpoints, consulte Como configurar o Endpoints.

Como implantar a configuração do Endpoints

Para implantar a configuração do Endpoints, use o comando gcloud endpoints services deploy. Esse comando usa o Service Infrastructure, um serviço de infraestrutura do GCP que gerencia outras APIs e serviços, incluindo serviços criados com o Cloud Endpoints.

Para implantar a configuração do Endpoints:
  1. Acesse o diretório endpoints/getting-started.
  2. Chame o comando a seguir:
    gcloud endpoints services deploy openapi-functions.yaml

    Isso cria um novo serviço do Cloud Endpoints com o nome especificado no campo host do arquivo openapi-functions.yaml caso ainda não exista. O serviço é atualizado de acordo com o documento do OpenAPI.

    Durante a criação e a configuração do serviço, o Service Management envia uma grande quantidade de informações ao terminal. É possível ignorar com tranquilidade os avisos sobre os caminhos no openapi-functions.yaml que não exigem uma chave de API. Após a conclusão, será exibida uma linha como esta, que exibe o código de configuração e o nome do serviço:

    Service Configuration [2019-01-04-r0] uploaded for service [gcf.endpoints.PROJECT_ID.cloud.goog]
    

No exemplo acima, 2019-01-04-r0 é o código de configuração do serviço, e gcf.endpoints.PROJECT_ID.cloud.goog é o nome do serviço. O código de configuração do serviço consiste em um carimbo de data e um número de revisão. Se você implantar openapi-functions.yaml novamente no mesmo dia, o número de revisão será alterado no código de configuração do serviço.

Se você receber uma mensagem de erro, consulte Como solucionar problemas de implantação na configuração do Endpoints.

Para mais informações, consulte Como implantar a configuração do Endpoints.

Como implantar o proxy do Endpoints

gcloud alpha run deploy endpoints-proxy \
    --image="gcr.io/serverless-api-mgmt/serverless-proxy-experimental" \
    --set-env-vars="ESP_ARGS=--service=gcf.endpoints.[YOUR_PROJECT_ID].cloud.goog --rollout_strategy=managed --enable-backend-routing"

Se você não receber uma resposta, consulte Como implantar o Cloud Run.

Como configurar o IAM

Como enviar solicitações à API

Agora que o serviço está em execução no App Engine, envie as solicitações para ele.

Enviar a solicitação

Linux ou Mac OS

  1. Crie uma variável de ambiente para o URL do projeto do App Engine. Substitua [YOUR_PROJECT_ID] pelo código de projeto do GCP:

    export ENDPOINTS_HOST=https://gcf.endpoints.[YOUR_PROJECT_ID].cloud.goog

  2. Envie uma solicitação HTTP usando a variável de ambiente ENDPOINTS_HOST definida anteriormente:

    curl "${ENDPOINTS_HOST}/echo"
    

Se você não receber uma resposta, consulte Solução de problemas em erros de respostas.

Você acaba de implantar e testar uma API no Cloud Endpoints.

Como rastrear atividade da API

  1. Veja os gráficos de atividades da API na página "Endpoints".
    Ver gráficos de atividades do Endpoints
    Pode levar alguns instantes até a solicitação aparecer nos gráficos.
  2. Verifique os registros de solicitações da API na página "Visualizador de registros".
    Ver registros de solicitações do Endpoints

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 que você pode usar 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 sua conta do GCP pelo uso de recursos neste guia de início rápido:

Consulte Como excluir uma API e as instâncias relacionadas para saber mais informações sobre como parar os serviços usados neste tutorial.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud Endpoints com OpenAPI
Precisa de ajuda? Acesse nossa página de suporte.