Começar a usar o Cloud Endpoints para grupos de instâncias geridas (MIGs) com o ESPv2


Este tutorial mostra como configurar e implementar uma amostra da API e o Extensible Service Proxy V2 (ESPv2) em execução em contentores Docker pré-criados em Managed Instance Group (MIGs) .

A API REST do exemplo de código é descrita através da especificação OpenAPI. O tutorial também mostra como criar uma chave da API e usá-la em pedidos à API.

Para uma vista geral do Cloud Endpoints, consulte os artigos Acerca dos Endpoints e Arquitetura dos Endpoints.

Objetivos

Use a seguinte lista de tarefas de alto nível à medida que avança no tutorial. Todas as tarefas são necessárias para enviar pedidos com êxito para a API.

  1. Configure um Google Cloud projeto. Consulte a secção Antes de começar.
  2. Transfira o exemplo de código. Consulte o artigo Obter o exemplo de código.
  3. Configure o ficheiro openapi.yaml, que é usado para configurar pontos finais. Consulte o artigo Configurar pontos finais.
  4. Implemente a configuração do Endpoints para criar um serviço do Endpoints. Consulte o artigo Implementar a configuração dos Endpoints.
  5. Implemente a API e o ESPv2 no back-end do grupo de instâncias geridas (GIGs). Consulte o artigo Implementar o back-end da API.
  6. Envie um pedido para a API através de um endereço IP. Consulte Enviar um pedido através do endereço IP.
  7. Configure um registo de DNS para a API de exemplo. Consulte o artigo Configurar o DNS para pontos finais.
  8. Envie um pedido para a API através do nome de domínio totalmente qualificado. Consulte Enviar um pedido através do FQDN.
  9. Acompanhe a atividade da API. Consulte o artigo Acompanhamento da atividade da API.
  10. Evite incorrer em cobranças na sua conta Google Cloud . Consulte a secção Limpar.

Custos

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Tome nota do ID do projeto, uma vez que é necessário mais tarde.
  7. Precisa de uma aplicação para enviar pedidos para a API de exemplo.

    • Utilizadores do Linux e macOS: este tutorial oferece um exemplo de utilização do curl, que normalmente vem pré-instalado no seu sistema operativo. Se não tiver o curl, pode transferi-lo na curl página de lançamentos e transferências.
    • Utilizadores do Windows: este tutorial fornece um exemplo com Invoke-WebRequest, que é suportado no PowerShell 3.0 e posterior.
  8. Transfira a CLI do Google Cloud.
  9. Atualize a CLI gcloud e instale os componentes do Endpoints.
    gcloud components update
  10. Certifique-se de que a CLI do Google Cloud (gcloud) está autorizada a aceder aos seus dados e serviços em Google Cloud:
    gcloud auth login
    No novo separador do navegador apresentado, selecione uma conta.
  11. Defina o projeto predefinido para o ID do seu projeto.
    gcloud config set project YOUR_PROJECT_ID

    Substitua YOUR_PROJECT_ID pelo ID do seu projeto. Se tiver outros Google Cloud projetos e quiser usar gcloud para os gerir, consulte Gerir configurações da CLI gcloud.

  12. Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.

Transferir o exemplo de código

Transfira o exemplo de código para a sua máquina local.

Java

Para clonar ou transferir a API de exemplo:

  1. Clone o repositório da app de exemplo para a sua máquina local:
    git clone https://github.com/GoogleCloudPlatform/java-docs-samples

    Em alternativa, transfira o exemplo como um ficheiro ZIP e extraia-o.

  2. Altere para o diretório que contém o código de exemplo:
    cd java-docs-samples/endpoints/getting-started
Python

Para clonar ou transferir a API de exemplo:

  1. Clone o repositório da app de exemplo para a sua máquina local:
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples

    Em alternativa, transfira o exemplo como um ficheiro ZIP e extraia-o.

  2. Altere para o diretório que contém o código de exemplo:
    cd python-docs-samples/endpoints/getting-started
Ir

Para clonar ou transferir a API de exemplo:

  1. Certifique-se de que a GOPATHvariável de ambiente está definida.
  2. Clone o repositório da app de exemplo para a sua máquina local:
    go get -d github.com/GoogleCloudPlatform/golang-samples/endpoints/getting-started
  3. Altere para o diretório que contém o código de exemplo:
    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/endpoints/getting-started
PHP

Para clonar ou transferir a API de exemplo:

  1. Clone o repositório da app de exemplo para a sua máquina local:
    git clone https://github.com/GoogleCloudPlatform/php-docs-samples

    Em alternativa, transfira o exemplo como um ficheiro ZIP e extraia-o.

  2. Altere para o diretório que contém o código de exemplo:
    cd php-docs-samples/endpoints/getting-started
Ruby

Para clonar ou transferir a API de exemplo:

  1. Clone o repositório da app de exemplo para a sua máquina local:
    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples

    Em alternativa, transfira o exemplo como um ficheiro ZIP e extraia-o.

  2. Altere para o diretório que contém o código de exemplo:
    cd ruby-docs-samples/endpoints/getting-started
NodeJS

Para clonar ou transferir a API de exemplo:

  1. Clone o repositório da app de exemplo para a sua máquina local:
    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples

    Em alternativa, transfira o exemplo como um ficheiro ZIP e extraia-o.

  2. Altere para o diretório que contém o código de exemplo:
    cd nodejs-docs-samples/endpoints/getting-started

Configurar pontos finais

O exemplo de código inclui o ficheiro de configuração da OpenAPI, openapi.yaml, que se baseia na especificação da OpenAPI v2.0. Configura e implementa o openapi.yaml na sua máquina local. Para configurar pontos finais:

  1. No diretório de código de exemplo, abra o ficheiro de configuração openapi.yaml.

    Java
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Python
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Ir
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    PHP
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Ruby
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    NodeJS
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"

    Tenha em conta o seguinte:

    • O exemplo de configuração apresenta as linhas junto ao campo host que tem de modificar. Para implementar o ficheiro openapi.yaml nos Endpoints, é necessário o documento OpenAPI completo.
    • O ficheiro de exemplo openapi.yaml contém uma secção para configurar a autenticação que não é necessária para este tutorial. Não precisa de configurar as linhas com YOUR-SERVICE-ACCOUNT-EMAIL e YOUR-CLIENT-ID.
    • A OpenAPI é uma especificação independente do idioma. O mesmo ficheiro openapi.yaml encontra-se no exemplo getting-started em cada repositório do GitHub para sua conveniência.
  2. No campo host, substitua o texto pelo nome do serviço Endpoints, que deve estar no seguinte formato:
    host: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"

    Substitua YOUR_PROJECT_ID pelo ID do seu Google Cloud projeto. Por exemplo:

    host: "echo-api.endpoints.example-project-12345.cloud.goog"

Tenha em atenção que echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog é o nome do serviço Endpoints. Não é o nome do domínio totalmente qualificado (FQDN) que usa para enviar pedidos à API.

Para obter informações sobre os campos no documento OpenAPI que o Endpoints requer, consulte o artigo Configurar o Endpoints. Depois de concluir todos os passos de configuração seguintes para poder enviar pedidos com êxito para a API de exemplo através de um endereço IP, consulte o artigo Configurar o DNS dos pontos finais para ver informações sobre como configurar echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog para ser o FQDN.

Implementar a configuração dos pontos finais

Para implementar a configuração do Endpoints, use o comando gcloud endpoints services deploy. Este comando usa a gestão de serviços para criar um serviço gerido.

Para implementar a configuração dos Endpoints:

  1. Certifique-se de que está no diretório endpoints/getting-started.
  2. Carregue a configuração e crie um serviço gerido:
    gcloud endpoints services deploy openapi.yaml
    

Em seguida, o comando gcloud chama a API Service Management para criar um serviço gerido com o nome que especificou no campo host do ficheiro openapi.yaml. A gestão de serviços configura o serviço de acordo com as definições no ficheiro openapi.yaml. Quando faz alterações ao openapi.yaml, tem de voltar a implementar o ficheiro para atualizar o serviço Endpoints.

À medida que cria e configura o serviço, o Service Management envia informações para o terminal. Pode ignorar com segurança os avisos sobre os caminhos no ficheiro openapi.yaml que não requerem uma chave da API. Quando terminar de configurar o serviço, a gestão de serviços apresenta uma mensagem com o ID de configuração do serviço e o nome do serviço, semelhante ao seguinte:

Service Configuration [2017-02-13r0] uploaded for service [echo-api.endpoints.example-project-12345.cloud.goog]

No exemplo anterior, 2017-02-13r0 é o ID de configuração do serviço e echo-api.endpoints.example-project-12345.cloud.goog é o serviço Endpoints. O ID de configuração do serviço consiste numa data/hora seguida de um número de revisão. Se implementar o ficheiro openapi.yaml novamente no mesmo dia, o número de revisão é incrementado no ID de configuração do serviço. Pode ver a configuração do serviço Endpoints na página Endpoints > Serviços na Google Cloud consola.

Se receber uma mensagem de erro, consulte o artigo Resolução de problemas da implementação da configuração de pontos finais.

A verificar os serviços necessários

No mínimo, os pontos finais e o ESP requerem a ativação dos seguintes serviços Google:
Nome Título
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

Na maioria dos casos, o comando gcloud endpoints services deploy ativa estes serviços obrigatórios. No entanto, o comando gcloud é concluído com êxito, mas não ativa os serviços necessários nas seguintes circunstâncias:

  • Se usou uma aplicação de terceiros, como o Terraform, e não incluiu estes serviços.

  • Implementou a configuração do Endpoints numGoogle Cloud projeto existente no qual estes serviços foram explicitamente desativados.

Use o seguinte comando para confirmar que os serviços necessários estão ativados:

gcloud services list

Se não vir os serviços necessários listados, ative-os:

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Ative também o serviço Endpoints:

gcloud services enable ENDPOINTS_SERVICE_NAME

Para determinar o ENDPOINTS_SERVICE_NAME, pode:

  • Após implementar a configuração do Endpoints, aceda à página Endpoints na Cloud Console. A lista de ENDPOINTS_SERVICE_NAME possíveis é apresentada na coluna Nome do serviço.

  • Para a OpenAPI, o ENDPOINTS_SERVICE_NAME é o que especificou no campo host da sua especificação OpenAPI. Para o gRPC, o ENDPOINTS_SERVICE_NAME é o que especificou no campo name da sua configuração de pontos finais gRPC.

Para mais informações sobre os comandos gcloud, consulte os serviços gcloud.

Implementar o back-end da API

Crie um modelo de instância

Crie um modelo que vai usar para criar um grupo de instâncias de VM. Cada instância criada a partir do modelo inicia um ESPv2 e um servidor de aplicações de back-end.

  1. Na Google Cloud consola, aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

  2. Clique em Criar modelo de instância.

  3. Em Nome, introduza load-balancing-espv2-template.

  4. Em Configuração da máquina, defina o Tipo de máquina como e2-micro.

  5. Em Disco de arranque, defina a Imagem como Container Optimized OS stable version.

  6. Em Firewall, selecione Permitir tráfego HTTP.

  7. Clique em Gestão, segurança, discos, trabalhar em rede, arrendamento único para revelar as definições avançadas.

  8. Clique no separador Gestão. Em Automatização, introduza o seguinte: Script de arranque. Lembre-se de atualizar o ENDPOINTS_SERVICE_NAME.

    sudo docker network create --driver bridge esp_net
    sudo docker run \
      --detach \
      --name=echo \
      --net=esp_net \
      gcr.io/google-samples/echo-python:1.0
    sudo docker run \
      --detach \
      --name=esp \
      --publish=80:9000 \
      --net=esp_net \
      gcr.io/endpoints-release/endpoints-runtime:2 \
      --service=ENDPOINTS_SERVICE_NAME \
      --rollout_strategy=managed \
      --listener_port=9000 \
      --healthz=/healthz \
      --backend=echo:8080
    

    O script obtém, instala e inicia o servidor de aplicações de eco e o servidor proxy ESPv2 no arranque da instância.

  9. Clique em Criar.

Aguarde até que o modelo seja criado antes de continuar.

Crie um grupo de instâncias gerido regional

Para executar a aplicação, use o modelo de instância para criar um grupo de instâncias gerido regional:

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Em Nome, introduza load-balancing-espv2-group.

  4. Em Localização, selecione Várias zonas.

  5. Em Região, selecione us-central1.

  6. Clique no menu pendente Configurar zonas para revelar Zonas. Selecione as seguintes zonas:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  7. Em Modelo de instância, selecione load-balancing-espv2-template.

  8. Em Ajuste de escala automático, selecione Não ajustar a escala automaticamente.

  9. Defina o Número de instâncias como 3.

  10. Em Redistribuição de instâncias, selecione Ativada.

  11. Em Reparação automática e Verificação de estado, selecione Sem verificação de estado.

  12. Clique em Criar. Esta ação redireciona novamente para a página Grupos de instâncias.

Crie um balanceador de carga

Esta secção explica os passos necessários para criar um balanceador de carga global que direcione o tráfego HTTP para o seu grupo de instâncias.

Este equilibrador de carga usa um front-end para receber tráfego de entrada e um back-end para distribuir este tráfego a instâncias em bom estado. Uma vez que o equilibrador de carga é composto por vários componentes, esta tarefa está dividida em várias partes:

  • Configuração do back-end
  • Configuração da interface
  • Reveja e finalize

Conclua todos os passos para criar o balanceador de carga.

  1. Na Google Cloud consola, aceda à página Criar um balanceador de carga.

    Aceda a Crie um balanceador de carga

  2. Na secção Balanceador de carga de aplicações (HTTP/S), clique em Iniciar configuração.

  3. Em Acessível pela Internet ou apenas interno, selecione Da Internet para as minhas VMs. Em seguida, clique em Continuar.

  4. Para o Nome do balanceador de carga, introduza espv2-load-balancer.

Configuração do back-end

  1. No painel do lado esquerdo da página Criar Application Load Balancer externo global, clique em Configuração do back-end.
  2. Clique em Criar ou selecionar serviços de back-end e contentores de back-end para abrir um menu pendente. Clique em Serviços de back-end e, de seguida, em Criar um serviço de back-end.
  3. Na nova janela, para o Nome da aplicação de back-end, introduza espv2-backend.
  4. Defina Grupo de instâncias como load-balancing-espv2-group.
  5. Defina Transferir números como 80. Isto permite o tráfego HTTP entre o balanceador de carga e o grupo de instâncias.
  6. Em Modo de equilíbrio, selecione Utilização.
  7. Clique em Concluído para criar o back-end.
  8. Crie a verificação de funcionamento para o back-end do balanceador de carga:

    1. Em Verificação de funcionamento, selecione Criar uma verificação de funcionamento (ou Criar outra verificação de funcionamento) no menu pendente. É aberta uma nova janela.
    2. Na nova janela, em Nome, introduza espv2-load-balancer-check.
    3. Defina o Protocolo como HTTP.
    4. Em Porta, introduza 80.
    5. Para este tutorial, defina o Caminho do pedido como /healthz, que é um caminho que o ESPv2 está configurado para responder.
    6. Defina os seguintes critérios de estado:

      1. Defina o Intervalo de verificação para 3 segundos. Isto define a quantidade de tempo desde o início de uma sondagem até ao início da seguinte.
      2. Defina o Limite de tempo para 3 segundos. Isto define o período de tempo que Google Cloud aguarda uma resposta a uma sondagem. O valor tem de ser inferior ou igual ao intervalo de verificação.
      3. Defina o Limite saudável para 2 sucessos consecutivos. Isto define o número de sondagens sequenciais que têm de ser bem-sucedidas para que a instância seja considerada em bom estado.
      4. Defina o limite não saudável para 2 falhas consecutivas. Este parâmetro define o número de sondagens sequenciais que têm de falhar para que a instância seja considerada não saudável.
    7. Clique em Guardar e continuar para criar a verificação de estado.

  9. Clique em Criar para criar o serviço de back-end.

Configuração da interface

  1. No painel do lado esquerdo da página Criar Application Load Balancer externo global, clique em Configuração do front-end.
  2. Na página Configuração do frontend, em Nome, introduza espv2-ipv4-frontend.
  3. Defina o Protocolo como HTTP.
  4. Defina a Porta para 80.
  5. Clique em Concluído para criar o frontend.

Reveja e finalize

  1. Valide as definições de equilíbrio de carga antes de criar o equilibrador de carga:

    1. No painel do lado esquerdo da página Criar Application Load Balancer externo global, clique em Rever e finalizar.
    2. Na página Reveja e finalize, verifique as seguintes definições de back-end:

      • O serviço de back-end está espv2-backend.
      • O protocolo de ponto final é HTTP.
      • A verificação de funcionamento está espv2-load-balancer-check.
      • O grupo de instâncias está load-balancing-espv2-group.
    3. Na mesma página, verifique se o Frontend usa um endereço IP com um Protocolo de HTTP.

  2. No painel esquerdo da página Criar Application Load Balancer externo global, clique em Criar para concluir a criação do balanceador de carga.

    Pode ter de aguardar alguns minutos para que a criação do equilibrador de carga termine.

  3. Depois de criar o balanceador de carga, encontre o endereço IP na página Balanceador de carga.

    Aceder ao balanceador de carga

Enviar um pedido através de um endereço IP

Depois de a API de exemplo e o ESPv2 estarem em execução no back-end implementado, pode enviar pedidos para a API a partir da sua máquina local.

Crie uma chave da API e defina uma variável de ambiente

O código de exemplo requer uma chave da API. Para simplificar o pedido, defina uma variável de ambiente para a chave da API.

  1. No mesmo Google Cloud projeto que usou para a sua API, crie uma chave da API na página de credenciais da API. Se quiser criar uma chave da API num Google Cloud projeto diferente, consulte o artigo Ativar uma API no seu Google Cloud projeto.

    Aceda à página Credenciais

  2. Clique em Criar credenciais e, de seguida, selecione Chave de API.
  3. Copie a chave para a área de transferência.
  4. Clique em Fechar.
  5. No computador local, cole a chave da API para a atribuir a uma variável de ambiente:
    • No Linux ou macOS: export ENDPOINTS_KEY=AIza...
    • No Windows PowerShell: $Env:ENDPOINTS_KEY="AIza..."

Envie o pedido

Linux ou Mac OS

Use curl para enviar um pedido HTTP através da variável de ambiente ENDPOINTS_KEY que definiu anteriormente. Substitua IP_ADDRESS pelo endereço IP externo da sua instância.

curl --request POST \
   --header "content-type:application/json" \
   --data '{"message":"hello world"}' \
   "http://IP_ADDRESS:80/echo?key=${ENDPOINTS_KEY}"

Nos curl anteriores:

  • A opção --data especifica os dados a publicar na API.
  • A opção --header especifica que os dados estão no formato JSON.

PowerShell

Use Invoke-WebRequest para enviar um pedido HTTP através da variável de ambiente ENDPOINTS_KEY que definiu anteriormente. Substitua IP_ADDRESS pelo endereço IP externo da sua instância.

(Invoke-WebRequest -Method POST -Body '{"message": "hello world"}' `
    -Headers @{"content-type"="application/json"} `
    -URI "http://IP_ADDRESS:80/echo?key=$Env:ENDPOINTS_KEY").Content

No exemplo anterior, as duas primeiras linhas terminam com um acento grave. Quando colar o exemplo no PowerShell, certifique-se de que não existe um espaço após os acentos graves. Para obter informações sobre as opções usadas no pedido de exemplo, consulte Invoke-WebRequest na documentação da Microsoft.

App de terceiros

Pode usar uma aplicação de terceiros, como a extensão do navegador Chrome Postman, para enviar o pedido:

  • Selecione POST como verbo HTTP.
  • Para o cabeçalho, selecione a chave content-type e o valor application/json.
  • Para o corpo, introduza o seguinte:
    {"message":"hello world"}
  • No URL, use a chave da API real em vez da variável de ambiente. Por exemplo:
    http://192.0.2.0:80/echo?key=AIza...

A API devolve a mensagem que envia e responde com o seguinte:

{
  "message": "hello world"
}

Se não recebeu uma resposta bem-sucedida, consulte o artigo Resolução de problemas de erros de resposta.

Acabou de implementar e testar uma API no Endpoints!

Configurar o DNS para pontos finais

Uma vez que o nome do serviço Endpoints para a API está no domínio .endpoints.YOUR_PROJECT_ID.cloud.goog, pode usá-lo como o nome de domínio totalmente qualificado (FQDN) fazendo uma pequena alteração de configuração no ficheiro openapi.yaml. Desta forma, pode enviar pedidos para a API de exemplo através de echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog em vez do endereço IP.

Para configurar o DNS dos Endpoints:

  1. Abra o ficheiro de configuração da OpenAPI, openapi.yaml, e adicione a propriedade x-google-endpoints no nível superior do ficheiro (sem recuo nem aninhamento), conforme mostrado no seguinte fragmento:
    host: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"
    x-google-endpoints:
    - name: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"
      target: "IP_ADDRESS"
  2. Na propriedade name, substitua YOUR_PROJECT_ID pelo ID do seu projeto.
  3. Na propriedade target, substitua IP_ADDRESS pelo endereço IP que usou quando enviou um pedido para a API de exemplo.
  4. Implemente o ficheiro de configuração OpenAPI atualizado na gestão de serviços:
    gcloud endpoints services deploy openapi.yaml
    

Por exemplo, suponha que o ficheiro openapi.yaml tem a seguinte configuração:

host: "echo-api.endpoints.example-project-12345.cloud.goog"
x-google-endpoints:
- name: "echo-api.endpoints.example-project-12345.cloud.goog"
  target: "192.0.2.1"

Quando implementa o ficheiro openapi.yaml através do comando gcloud anterior, a gestão de serviços cria um registo A de DNS, echo-api.endpoints.my-project-id.cloud.goog, que é resolvido para o endereço IP de destino, 192.0.2.1. A propagação da nova configuração de DNS pode demorar alguns minutos.

Configurar SSL

Para mais detalhes sobre como configurar o DNS e o SSL, consulte o artigo Ativar SSL para pontos finais.

Enviar um pedido através do FQDN

Agora que tem o registo DNS configurado para a API de exemplo, envie-lhe um pedido usando o FQDN (substitua YOUR_PROJECT_ID pelo ID do seu projeto) e a variável de ambiente ENDPOINTS_KEY definida anteriormente:
  • No Linux ou Mac OS:
    curl --request POST \
        --header "content-type:application/json" \
        --data '{"message":"hello world"}' \
        "http://echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog:80/echo?key=${ENDPOINTS_KEY}"
  • No Windows PowerShell:
    (Invoke-WebRequest -Method POST -Body '{"message": "hello world"}' -Headers @{"content-type"="application/json"} -URI "http://echo-api.endpoints.[YOUR_PROJECT_ID].cloud.goog:80/echo?key=$Env:ENDPOINTS_KEY").Content

Acompanhamento da atividade da API

Para acompanhar a atividade da API:

  1. Consulte os gráficos de atividade da sua API na página Endpoints > Serviços.

    Aceda à página Serviços de pontos finais


    Pode demorar alguns momentos até que o pedido se reflita nos gráficos.
  2. Consulte os registos de pedidos da sua API na página do Explorador de registos.

    Aceda à página do Explorador de registos

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

  1. Certifique-se de que a CLI gcloud (gcloud) está autorizada a aceder aos seus dados e serviços em Google Cloud:

    gcloud auth login
    
  2. Introduza o seguinte para apresentar os IDs dos seus Google Cloud projetos:

    gcloud projects list
    
  3. Usando o ID do projeto aplicável do passo anterior, defina o projeto predefinido Google Cloud para aquele em que a sua aplicação se encontra:

    gcloud config set project [YOUR_PROJECT_ID]
    
  4. Obtenha o nome de todos os serviços geridos no seu Google Cloud projeto:

    gcloud endpoints services list
    
  5. Elimine o serviço na gestão de serviços. Substitua SERVICE_NAME pelo nome do serviço que quer remover.

    gcloud endpoints services delete SERVICE_NAME
    

    A execução de gcloud endpoints services delete não elimina imediatamente o serviço gerido. A gestão de serviços desativa o serviço gerido durante 30 dias, o que lhe dá tempo para o restaurar, se precisar. Após 30 dias, a gestão de serviços elimina permanentemente o serviço gerido.

  6. Aceda à página Load Balancer.

    Aceder ao balanceador de carga

    Elimine o balanceador de carga espv2-load-balancer com o serviço de back-end espv2-backend e a verificação de funcionamento espv2-load-balancer-check.

  7. Aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

    Eliminar load-balancing-espv2-group

  8. Aceda à página Modelo de instância.

    Aceda a Modelos de instâncias

    Eliminar load-balancing-espv2-template.

O que se segue?