Como implantar o back-end da API

Nesta página, você aprende a implantar o código de back-end de sua API e o Extensible Service Proxy (ESP) no Google Kubernetes Engine e no Compute Engine.

As etapas de implantação variam de acordo com a plataforma que hospeda sua API, mas sempre há uma etapa em que você fornece ao ESP o nome do serviço e uma opção que configura o ESP para usar a última configuração de serviço do Cloud Endpoints implantada. Com essas informações, o ESP recebe a configuração do Endpoints da API e atua como proxy em solicitações e respostas para que ela seja gerenciada pelo Cloud Endpoints.

Pré-requisitos

Como ponto de partida nesta página, presume-se que você:

Como se preparar para a implantação

Compute Engine

Para que o Endpoints gerencie a API, é necessário instalar e configurar o ESP e o código do servidor de back-end para a API. Você precisa instalar o Docker em sua instância de VM do Compute Engine para executar a imagem do Docker ESP disponível gratuitamente no Container Registry.

Antes de implantar:

Antes de implantar sua API e o ESP no Compute Engine, conclua as etapas a seguir:

  1. Crie, configure e inicie sua instância de VM.
  2. Instale o Docker Enterprise Edition (EE) ou o Docker Community Edition (CE) na sua instância de VM.
  3. Crie um contêiner do Docker para seu código de servidor de back-end.
  4. Envie o contêiner para o Container Registry ou outro registro.
  5. Confira se é possível:

GKE

Quando você cria um cluster no Console do GCP, por padrão, os escopos do OAuth concedidos à conta de serviço do cluster incluem os escopos exigidos pelo Cloud Endpoints:

  • Service Control: ativado
  • Service Management: somente leitura

Ao criar um cluster usando o comando gcloud container clusters create ou um arquivo de configuração de terceiros, especifique os seguintes escopos:

  • "https://www.googleapis.com/auth/servicecontrol"
  • "https://www.googleapis.com/auth/service.management.readonly"

Para mais informações, consulte O que são os escopos de acesso?

Antes de implantar:

Com o acréscimo de uma pequena seção ao seu arquivo de manifesto de implantação, é possível executar a imagem do Docker ESP nos seus clusters de contêineres com o aplicativo em contêiner. Antes de implantar sua API com o ESP para o GKE, conclua as etapas a seguir:

  1. Implante o aplicativo em contêiner nos clusters do contêiner. As etapas gerais descritas na documentação do GKE são:

    1. Empacote o aplicativo em uma imagem do Docker.
    2. Faça upload da imagem para um registro.
    3. Crie um cluster de contêiner.
    4. Implante seu aplicativo no cluster.
    5. Exponha seu aplicativo à internet.
  2. Confira se é possível:

    • iniciar o servidor da API;
    • enviar solicitações para a API.

Como implantar a API e o ESP

Compute Engine

Para implantar a API com o ESP no Compute Engine com o Docker, siga estas etapas:

  1. Conecte-se à instância da VM. Substitua INSTANCE_NAME pelo nome da sua instância de VM.

    gcloud compute ssh INSTANCE_NAME
    
  2. Crie uma rede de contêineres própria denominada esp_net.

    sudo docker network create --driver bridge esp_net
    
  3. Execute uma instância da imagem do código do servidor de back-end e conecte-a à rede de contêineres esp_net:

    sudo docker run \
        --detach \
        --name=YOUR_API_CONTAINER_NAME \
        --net=esp_net \
        gcr.io/YOUR_PROJECT_ID/YOUR_IMAGE:1
    
    • Substitua YOUR_API_CONTAINER_NAME pelo nome do contêiner.
    • Substitua YOUR_PROJECT_ID pelo código do projeto do GCP que você usou ao enviar a imagem.
    • Substitua YOUR_IMAGE pelo nome da imagem.
  4. Confira o nome do serviço da API. Esse é o nome que você especificou no campo name do arquivo YAML de configuração do serviço.

  5. Execute uma instância da imagem do Docker ESP:

    sudo docker run \
        --detach \
        --name=esp \
        --publish=80:9000 \
        --net=esp_net \
        gcr.io/endpoints-release/endpoints-runtime:1 \
        --service=SERVICE_NAME \
        --rollout_strategy=managed \
        --http2_port=9000 \
        --backend=grpc://YOUR_API_CONTAINER_NAME:8000
    
    • Substitua SERVICE_NAME pelo nome do serviço.
    • Substitua YOUR_API_CONTAINER_NAME pelo nome do contêiner da API.

    Com a opção --rollout_strategy=managed, você configura o ESP para usar a implantação mais recente da configuração de serviço. Quando essa opção é especificada, a alteração é detectada pelo ESP até um minuto após a implantação de uma nova configuração de serviço e começa a ser usada automaticamente. Recomendamos especificar essa opção em vez de um código de configuração específico para uso do ESP.

Veja como configurar o ESP para usar uma ID de configuração específica, caso seja necessário:

  1. Inclua a opção --version e defina-a para uma ID de configuração específica.

  2. Remova a opção --rollout_strategy=managed ou configure --rollout_strategy como fixed. A opção fixed configura o ESP para usar a configuração do serviço especificada em --version.

  3. Execute o comando docker run novamente.

Caso você especifique as opções --rollout_strategy=managed e --version, o ESP será iniciado com a configuração especificada em --version, mas executado no modo gerenciado e recebendo a configuração mais recente.

Recomendamos não manter o ESP configurado para usar uma ID de configuração específica por muito tempo porque, se você implantar uma configuração de serviço atualizada, terá que reiniciar o ESP para usar a nova configuração.

Para remover a ID de configuração específica:

  1. Nas sinalizações ESP para docker run, remova a opção --version.

  2. Adicione a opção --rollout_strategy=managed.

  3. Para reiniciar o ESP, execute o comando docker run.

Veja as opções de inicialização do ESP para conhecer a lista completa de opções que podem ser especificadas ao iniciar o ESP.

GKE

Para implantar o ESP no GKE:

  1. Solicite o nome do serviço da API.

  2. Abra o arquivo de manifesto de implantação, referido como deployment.yaml, e adicione o seguinte comando à seção containers:

          containers:
          - name: esp
            image: gcr.io/endpoints-release/endpoints-runtime:1
            args: [
              "--http2_port=9000",
              "--service=SERVICE_NAME",
              "--rollout_strategy=managed",
              "--backend=grpc://127.0.0.1:8000"
            ]
            ports:
              - containerPort: 9000
    

    Substitua SERVICE_NAME pelo nome do serviço da API.

  3. Inicie o serviço do Kubernetes com o comando kubectl create:

        kubectl create -f deployment.yaml
    

Veja como configurar o ESP para usar uma ID de configuração específica, caso seja necessário:

  1. No arquivo de manifesto da implantação, adicione a opção --version e defina-a para uma ID de configuração específica.

  2. Remova o --rollout_strategy=managed ou configure --rollout_strategy como fixed. A opção fixed configura o ESP para usar a configuração do serviço especificada em --version.

  3. Inicie o serviço do Kubernetes: kubectl create -f deployment.yaml

Caso você especifique as opções --rollout_strategy=managed e --version, o ESP será iniciado com a configuração especificada em --version, mas executado no modo gerenciado e recebendo a configuração mais recente.

Recomendamos não manter o ESP configurado para usar uma ID de configuração específica por muito tempo, porque, se você implantar uma configuração de serviço atualizada, terá que reiniciar o ESP para usar a nova configuração.

Para remover a ID de configuração específica:

  1. No arquivo de manifesto da implantação, remova a opção --version.

  2. Adicione --rollout_strategy=managed.

  3. Inicie o serviço do Kubernetes: kubectl create -f deployment.yaml

Veja as opções de inicialização do ESP para conhecer a lista completa de opções que podem ser especificadas ao iniciar o ESP.

Como rastrear atividade da API

Após a implantação do ESP e do back-end da API, use ferramentas como curl ou Postman para enviar solicitações à API. Caso não receba uma resposta bem-sucedida, consulte Como solucionar problemas em erros de resposta

Após o envio de algumas solicitações, é possível:

A seguir

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

Enviar comentários sobre…

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