Configure o gRPC do Cloud Endpoints para o Knative Serving com o ESPv2

Esta página mostra como configurar o Cloud Endpoints para o Knative serving. Os Endpoints usam o Extensible Service Proxy V2 (ESPv2) como um gateway de API. Para fornecer gestão de APIs para o Knative Serving, implementa o contentor ESPv2 pré-criado no Knative Serving em execução num cluster do GKE.

Com esta configuração, o ESPv2 interceta todos os pedidos aos seus serviços e realiza todas as verificações necessárias (como a autenticação) antes de invocar o serviço. Quando o serviço responde, o ESPv2 recolhe e comunica a telemetria.

Para uma vista geral dos pontos finais, consulte os artigos Acerca dos pontos finais e Arquitetura dos pontos finais.

Lista de tarefas

Use a seguinte lista de tarefas enquanto segue o tutorial. Todas as tarefas são necessárias para concluir este tutorial.

  1. Crie um Google Cloud projeto e, se ainda não tiver implementado o seu próprio Knative Serving, implemente um serviço de exemplo. Consulte a secção Antes de começar.

  2. Crie um cluster do GKE com a publicação do Knative ativada.

  3. Implemente um exemplo de gRPC do serviço Knative.

  4. Crie um documento de configuração da API gRPC que descreva a sua API Endpoints e configure as rotas para o seu serviço Knative serving. Consulte o artigo Configurar pontos finais.

  5. Implemente o documento de configuração da API gRPC para criar um serviço gerido. Consulte o artigo Implementar a configuração dos Endpoints.

  6. Crie uma nova imagem Docker do ESPv2 com a configuração do serviço Endpoints. Consulte o artigo Criar uma nova imagem do ESPv2.

  7. Implemente a nova imagem de publicação do Knative ESPv2. Consulte o artigo Implementar a imagem do Cloud Run do ESPv2.

  8. Crie um mapeamento de domínio para o serviço de publicação do Knative ESPv2.

  9. Teste a sua configuração enviando um pedido para a API.

  10. Monitorize a atividade nos seus serviços. Consulte o artigo Acompanhamento da atividade da API.

  11. 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, pois é necessário mais tarde. No resto desta página, este ID do projeto é designado ESPv2_PROJECT_ID.
  7. Transfira e instale a CLI gcloud.
  8. Configurar a linha de comandos gcloud

    Para configurar a CLI gcloud para o Knative Serving para Anthos:

    1. Certifique-se de que a CLI gcloud está autorizada a aceder aos seus dados e serviços.

      1. Inicie sessão.

        gcloud auth login

      2. No novo separador do navegador apresentado, escolha uma conta com a função de Editor ou Proprietário no projeto do Google Cloud que criou para implementar o ESPv2 no Knative Serving.

    2. Atualize os componentes gcloud instalados:

      gcloud components update
    3. Defina a plataforma como gke e defina a predefinição do projeto para gcloud como a que acabou de criar:

      gcloud config set run/platform gke 
      gcloud config set project ESPv2_PROJECT_ID

      Substitua ESPv2_PROJECT_ID pelo ID do projeto que criou.

    4. Defina a zona pretendida para o novo cluster. Pode usar qualquer zona onde o GKE seja suportado, por exemplo:

      gcloud config set compute/zone ZONE

      Substitua ZONE pela sua zona. Por exemplo, use us-central1-a. Pode usar qualquer zona suportada pelo GKE.

    5. Ative as seguintes APIs para o projeto, que são necessárias para criar um cluster, criar e publicar um contentor no Artifact Registry:

      gcloud services enable container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com

Criar um cluster do GKE com o Knative Serving ativado

Para criar um cluster e ativá-lo para publicação do Knative no Google Cloud:

  1. Crie um novo cluster com o comando:

    gcloud container clusters create CLUSTER_NAME \ 
      --addons=HttpLoadBalancing,CloudRun \ 
      --machine-type=n1-standard-4 \ 
      --num-nodes=3

    Substitua CLUSTER_NAME pelo nome que quer dar ao cluster.

    Embora estas instruções não ativem a capacidade de escala automática de clusters para redimensionar clusters em função da procura, o Knative Serving no Google Cloud dimensiona automaticamente as instâncias no cluster.

  2. Aguarde pela conclusão da criação do cluster. Durante o processo de criação, deve ver mensagens semelhantes às seguintes:

    Creating cluster CLUSTER_NAME...done. 
    Created [https://container.googleapis.com/v1/projects/ESPv2_PROJECT_ID/zones/ZONE/clusters/CLUSTER_NAME].

    A saída também mostra a versão do cluster na coluna NODE_VERSION da saída. Por exemplo, 1.15.11-gke.1 ou 1.14.10-gke.27. Tome nota da versão do cluster para utilização posterior neste documento.

  3. Defina os valores predefinidos gcloud para usar o novo cluster e a localização do cluster, para evitar ter de os especificar quando usar a CLI gcloud:

    gcloud config set run/cluster CLUSTER_NAME
    gcloud config set run/cluster_location ZONE
  4. Use o seguinte comando para ver detalhes sobre o novo cluster:

    gcloud container clusters describe CLUSTER_NAME
  5. Use o seguinte comando para obter as credenciais do seu cluster:

    gcloud container clusters get-credentials CLUSTER_NAME

Implementar um serviço do Cloud Run gRPC de exemplo

Para implementar o contentor de exemplo do Cloud Run for Anthos "grpc-bookstore" no cluster que acabou de criar:

  1. Siga os passos no guia de início rápido do gRPC Python para instalar o gRPC e as ferramentas gRPC.

  2. Este exemplo de servidor gRPC contém uma imagem Docker pré-criada para o "serviço de livraria" Python: gcr.io/endpointsv2/python-grpc-bookstore-server:2. Use o seguinte comando para implementar "grpc-bookstore" no seu cluster:

    gcloud run deploy GRPC_SERVICE \
      --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2 \
      --platform=gke \
     --connectivity=internal \
      --use-http2

    Tenha em atenção que especifica isto como um serviço interno para que o serviço não seja acessível externamente.

    Substitua GRPC_SERVICE pelo nome que quer para o seu serviço. Por exemplo:

    gcloud run deploy grpc-bookstore \
      --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2 \
      --platform=gke \
      --connectivity=internal \
      --use-http2

    Quando terminar, é apresentada a seguinte mensagem:

    Service [grpc-bookstore] revision [grpc-bookstore-00001-nuk] has been deployed and is serving 100 percent of traffic at http://grpc-bookstore.default.svc.cluster.local

    Quando cria um serviço interno, o GKE cria um nome DNS (grpc-bookstore.default.svc.cluster.local neste exemplo) que só pode ser resolvido para pedidos originados no próprio cluster e não para pedidos externos. Não pode aceder a este DNS externamente a partir do cluster. Consulte os serviços do Cloud Run para mais informações.

  3. Para verificar se o seu serviço está a funcionar corretamente, implemente um pod com a mesma imagem do Docker no seu cluster. A imagem contém o código do cliente gRPC para "grpc-bookstore" que pode usar para testar o serviço interno.

    1. Use o seguinte comando kubectl para implementar um pod no mesmo cluster que implementou anteriormente:

      kubectl run grpc --generator=run-pod/v1 \
        --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2

      Esta imagem contém o script bookstore_client.py que pode usar para fazer pedidos de clientes a partir do cluster.

      Nota: para versões mais recentes do kubectl, o comando pode emitir o seguinte aviso:

      Flag --generator has been deprecated, has no effect and will be removed in the future".

      Pode ignorar esse aviso.

    2. Obtenha o nome do pod "grpc-bookstore" criado no cluster quando implementou a imagem do Docker no passo anterior:

      kubectl get pods

      Deverá ver um resultado no formato:

      NAME   READY    STATUS    RESTARTS   AGE
      grpc   1/1      Running   0          23h

      Onde grp é o nome do pod "grpc-bookstore". Certifique-se de que o Estado do pod é Em execução antes de continuar.

    3. Use o seguinte comando para fazer um pedido de cliente ao serviço "grpc-bookstore":

      kubectl exec grpc -ti -- python3 bookstore_client.py \
        --host grpc-bookstore.default.svc.cluster.local --port=80

      Este comando executa o script bookstore_client.py internamente no cluster para fazer um pedido gRPC ao serviço "grpc-bookstore" no nome do anfitrião grpc-bookstore.default.svc.cluster.local.

      Se tudo estiver a funcionar corretamente, deve ver uma resposta no seguinte formato:

      ListShelves: shelves {
        id: 1
        theme: "Fiction"
      }
      shelves {
        id: 2
        theme: "Fantasy"
      }

Configurar pontos finais

Tem de ter uma especificação da API gRPC que descreva a superfície do seu serviço de back-end e quaisquer requisitos de autenticação.

Acerca da definição do campo de nome da especificação da API gRPC

No campo name da especificação da API gRPC, especifica o nome do serviço Endpoints usado para aceder ao seu serviço Knative Serving. O nome do serviço Endpoints está no formato de um nome de domínio:

API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog

Uma vez que o nome do serviço Endpoints corresponde a um nome de domínio, o nome tem de seguir estas regras:

  • Tem de conter apenas letras minúsculas, números, pontos finais ou travessões.
  • Não pode começar com um traço.
  • Não pode conter um sublinhado.

Por exemplo:

grpc-boostore-api.endpoints.ESPv2_PROJECT_ID.cloud.goog

Criar a especificação da API gRPC

O exemplo bookstore-grpc contém os ficheiros que tem de copiar localmente e configurar.

  1. Crie um novo diretório para a especificação da API gRPC, como my-anthos-grpc. Em seguida, use o comando cd para aceder a esse diretório.

  2. Clone o repositório git onde o código do cliente gRPC está alojado no seu novo diretório:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
  3. Altere o diretório de trabalho:

    cd python-docs-samples/endpoints/bookstore-grpc/

    Tenha em atenção que este diretório contém o ficheiro bookstore.proto. Este ficheiro define a API do serviço Bookstore.

  4. Crie um ficheiro de descritor protobuf autónomo a partir do ficheiro .proto do seu serviço:

    1. Crie o diretório generated_pb2 no seu diretório de trabalho.

    2. Crie o ficheiro de descritor, api_descriptor.pb, usando o compilador de buffers de protocolo protoc. Execute o seguinte comando no diretório que contém bookstore.proto:

      python3 -m grpc_tools.protoc \
      --include_imports \
      --include_source_info \
      --proto_path=. \
      --descriptor_set_out=api_descriptor.pb \
      --python_out=generated_pb2 \
      --grpc_python_out=generated_pb2 \
      bookstore.proto

    No comando anterior, --proto_path está definido como o diretório de trabalho atual. No seu ambiente de compilação gRPC, se usar um diretório diferente para os ficheiros de entrada .proto, altere --proto_path para que o compilador pesquise o diretório onde guardou bookstore.proto.

  5. Modifique o ficheiro api_config_anthos.yaml no seu diretório de trabalho atual (o mesmo diretório que contém bookstore.proto) para adicionar o seguinte conteúdo ao ficheiro:

    type: google.api.Service
    config_version: 3
    #
    # Name of the service configuration.
    #
    name: API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog
    #
    # API title to appear in the user interface (Google Cloud console).
    #
    title: Bookstore gRPC API In Cloud Run Anthors
    apis:
    - name: endpoints.examples.bookstore.Bookstore
    #
    # Create a DNS record to map your service name to IP address
    #
    endpoints:
      - name: API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog
        target: IP_ADDRESS
    #
    # Specify the backend address to route to
    #
    backend:
      rules:
        - selector: "*"
          address: grpc://GRPC_SERVICE.default.svc.cluster.local
          disable_auth: true
    #
    # API usage restrictions.
    #
    usage:
      rules:
      # ListShelves methods can be called without an API Key.
      - selector: endpoints.examples.bookstore.Bookstore.ListShelves
        allow_unregistered_calls: true

    O recuo é importante para o formato YAML.

  6. No campo name, especifique o nome do domínio da API Cloud Endpoints usada para aceder ao seu serviço Knative serving, no formato:

    API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog

    Por exemplo:

    grpc-bookstore-api.endpoints.ESPv2_PROJECT_ID.cloud.goog

  7. A secção endpoints regista uma entrada DNS para o seu serviço Endpoints no domínio cloud.goog, no formato:

    endpoints:
      - name: API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog
        target: IP_ADDRESS

    O IP_ADDRESS é o IP do serviço istio-ingress para o seu cluster. Para determinar este endereço IP:

    1. Aceda à página do Google Kubernetes Engine na Google Cloud consola:

      Aceda ao Google Kubernetes Engine

    2. Clique em Serviços e entrada no painel de navegação do lado esquerdo para apresentar uma lista de serviços.

    3. Se a versão do cluster for 1.15.3-gke.19 ou superior, 1.14.3-gke.12 ou superior, ou 1.13.10-gke.8 ou superior, desloque a página para baixo até ao serviço istio-ingress. Para todas as outras versões do cluster, desloque a página para baixo até ao serviço istio-ingressgateway.

    4. Copie o endereço IP externo apresentado junto ao equilibrador de carga, sem a definição da porta, se existir. Por exemplo, se o IP for XX.XXX.XX.XXX:15020, omita o :15020. Ignore os outros endereços IP apresentados.

  8. O campo address na secção backend especifica o nome DNS interno do serviço "grpc-bookstore" do Cloud Run com o esquema proto grpc:// e desativa a autenticação para este serviço:

    address: grpc://GRPC_SERVICE.default.svc.cluster.local
    disable_auth: true

    Por exemplo:

    address: grpc://grpc-bookstore.default.svc.cluster.local
    disable_auth: true

    Isto é necessário porque a chamada do ESPv2 para o serviço Knative serving é feita como uma chamada interna a partir do cluster e, por isso, a autenticação não é necessária.

  9. Tome nota do valor da propriedade title no ficheiro api_config_authos.yaml:

    title: Bookstore gRPC API In Cloud Run Anthos

    O valor da propriedade title torna-se o nome do serviço Endpoints depois de implementar a configuração.

  10. Guarde o documento da API gRPC.

Para obter informações sobre os campos no documento OpenAPI que o Endpoints requer, consulte o artigo Configurar o Endpoints.

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 que contém o seu documento gRPC.

  2. Carregue a configuração e crie um serviço gerido.

    gcloud endpoints services deploy api_descriptor.pb api_config_anthos.yaml \ 
      --project ESPv2_PROJECT_ID

    Esta ação cria um novo serviço de Endpoints com o nome que especificou no campo name do ficheiro api_config_anthos.yaml. O serviço Endpoints está configurado de acordo com o seu documento OpenAPI.

    À medida que cria e configura o serviço Endpoints, o Service Management envia informações para o terminal. Quando a implementação estiver concluída, é apresentada uma mensagem semelhante à seguinte:

    Service Configuration [CONFIG_ID] uploaded for service [API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog]

    CONFIG_ID é o ID de configuração do serviço Endpoints exclusivo criado pela implementação. Por exemplo:

    Service Configuration [2019-02-01r0] uploaded for service [grpc-bookstore-api.endpoints.ESPv2_PROJECT_ID.cloud.goog] 

    O ID de configuração do serviço consiste numa indicação de data/hora seguida de um número de revisão. Se implementar o api_config_anthos.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 e o histórico de implementação na página Endpoints > Services na Google Cloud consola.

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

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.

Criar uma nova imagem de apresentação do Knative ESPv2

Crie a configuração do serviço Endpoints numa nova imagem Docker do ESPv2. Depois de criar esta imagem, pode implementá-la no seu cluster.

Para criar a configuração do serviço numa nova imagem Docker do ESPv2:

  1. Transfira este script para a sua máquina local onde a CLI gcloud está instalada e execute-o da seguinte forma:

    chmod +x gcloud_build_image 
    ./gcloud_build_image -s API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog \ 
    -c CONFIG_ID -p ESPv2_PROJECT_ID

    O script usa o comando gcloud para transferir a configuração do serviço, criar a configuração do serviço numa nova imagem do ESPv2 e carregar a nova imagem para o registo de contentores do seu projeto. O script usa automaticamente a versão mais recente do ESPv2, indicada por ESPv2_VERSION no nome da imagem de saída. A imagem de saída é carregada para:

    gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:ESPv2_VERSION-API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog-CONFIG_ID

Implementar a imagem de publicação do ESPv2 Knative

Implemente a imagem do serviço de publicação do ESPv2 Knative no seu cluster:

  1. Implemente o serviço de publicação Knative do ESPv2 com a nova imagem:

    gcloud run deploy ESPv2_SERVICE_NAME \ 
      --image="gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog-CONFIG_ID" \ 
      --platform gke \
      --use-http2 \
      --project=ESPv2_PROJECT_ID

    Para ESPv2_PROJECT_ID, especifique o nome que quer usar para o serviço ESPv2. Neste exemplo, defina ESPv2_SERVICE_NAME como ESPv2.

  2. Se quiser configurar os Endpoints para usar opções de arranque do ESPv2 adicionais, como ativar o CORS, pode transmitir os argumentos na variável de ambiente ESPv2_ARGS:

    gcloud run deploy ESPv2_SERVICE_NAME \
      --image="gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog-CONFIG_ID" \ 
      --set-env-vars=ESPv2_ARGS=--cors_preset=basic \ 
      --platform gke --use-http2 \
      --project ESPv2_PROJECT_ID

    Para mais informações e exemplos sobre a definição da variável de ambiente ESPv2_ARGS, incluindo a lista de opções disponíveis e informações sobre como especificar várias opções, consulte o artigo Flags do proxy de serviço extensível V2.

Criar um mapeamento de domínio para o serviço de publicação do Knative ESPv2

Para poder omitir o cabeçalho host quando fizer um pedido, adicione um mapeamento de domínio para o serviço ESPv2:

  1. Aceda ao Cloud Run

  2. Selecione Gerir domínios personalizados.

  3. Selecione Adicionar mapeamento.

  4. No menu pendente, selecione Adicionar mapeamento de domínio de serviço.

  5. No campo Selecionar um serviço para mapear do pop-up Adicionar mapeamento, selecione o seu serviço ESPv2.

  6. No campo Introduza o nome do domínio, especifique o nome do domínio que quer usar para aceder ao seu serviço Knative serving através dos Endpoints. Por exemplo, especifique:

    API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog

    Em que API_NAME é o nome da sua API Endpoints. Para este exemplo, pode usar "hello-api":

    grpc-bookstore-api.endpoints.ESPv2_PROJECT_ID.cloud.goog

  7. Clique em Continuar. É apresentado um resumo do mapeamento.

  8. Selecione Concluído para guardar o mapeamento.

Enviar pedidos para a API

Para enviar pedidos para a API de exemplo, pode usar um cliente gRPC de exemplo escrito em Python.

  1. Certifique-se de que está no diretório que contém os seus documentos gRPC, como api_config_anthos.yaml.

  2. Instalar dependências:

    pip3 install virtualenv
    virtualenv env
    source env/bin/activate
    pip3 install -r requirements.txt
  3. Envie um pedido para a API de exemplo:

    python3 bookstore_client.py --host API_NAME.endpoints.ESPv2_PROJECT_ID.cloud.goog --port 80

    Por exemplo:

    python3 bookstore_client.py --host grpc-bookstore-api.endpoints.ESPv2_PROJECT_ID.cloud.goog --port 80

    Se tudo estiver a funcionar corretamente, deve ver uma resposta no seguinte formato:

    ListShelves: shelves {
      id: 1
      theme: "Fiction"
    }
    shelves {
      id: 2
      theme: "Fantasy"
    }

Se não receber 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 a API Endpoints para usar HTTPS

O suporte de TLS automático está desativado por predefinição para o Knative Serving no Google Cloud. Por conseguinte, neste exemplo, quando acede à API Endpoints através do ESPv2, faz a chamada através de HTTP.

Pode configurar o ESPv2 para suportar pedidos através de HTTPS. Tenha em atenção que configura o suporte de HTTPS no ESPv2, o serviço externo, e não em "hello", o serviço de back-end interno.

Para suportar HTTPS com o ESPv2, tem de:

  1. Ter um domínio. Se não tiver um domínio, pode obtê-lo na Google ou noutro fornecedor de domínios.

  2. Criou um mapeamento de domínio para o seu serviço ESPv2 e atualizou o registo DNS em conformidade, seguindo as instruções na página de mapeamento de domínios.

    Se obteve o seu domínio a partir do Google Domains, use-o como servidor DNS. Caso contrário, use o Cloud DNS ou um servidor DNS à sua escolha. A utilização de um domínio do Google Domains é a opção mais fácil.

  3. Na especificação OpenAPI dos Endpoints:

    1. Defina o campo name para fazer referência ao seu domínio em vez de a *.cloud.goog.

    2. Remova a etiqueta endpoints e as respetivas duas propriedades secundárias.

Para ver instruções completas e um tutorial, consulte o artigo Ativar HTTPS e certificados TLS automáticos.

Acompanhamento da atividade da API

  1. Veja os gráficos de atividade da sua API na página Endpoints > Service na Google Cloud consola.

    Veja gráficos de atividade 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.

    Veja os registos de pedidos de pontos finais

Limpar

Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

Consulte o artigo Eliminar uma API e instâncias de API para obter informações sobre como parar os serviços usados por este tutorial.

O que se segue?