Nesta página, você aprende a implantar o código de back-end da 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:
- Crie, configure e inicie sua instância de VM.
- Instale o Docker Enterprise Edition (EE) ou o Docker Community Edition (CE) na sua instância de VM.
- Crie um contêiner do Docker para seu código de servidor de back-end.
- Envie o contêiner para o Artifact Registry} ou outro registro.
- Confira se é possível: - conectar-se à instância de VM;
- executar a imagem do Docker para iniciar o servidor de back-end na instância de VM. Consulte a Referência de execução do Docker;
- enviar solicitações para a API.
 
GKE
Quando você cria um cluster no console Google Cloud , por padrão, os escopos do OAuth concedidos à conta de serviço do cluster incluem os escopos exigidos pelo Endpoints:
- Service Control: ativado
- Service Management: somente leitura
Ao criar um cluster com o comando gcloud container clusters create ou um arquivo de configuração de terceiros, especifique os escopos a seguir:
- "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:
- Implante o aplicativo em contêiner nos clusters do contêiner. As etapas gerais descritas na documentação do GKE são: - Empacote o aplicativo em uma imagem do Docker.
- Faça upload da imagem para um registro.
- Crie um cluster de contêiner.
- Implante seu aplicativo no cluster.
- Exponha seu aplicativo à internet.
 
- 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:
- Conecte-se à instância da VM. Substitua - INSTANCE_NAMEpelo nome da sua instância de VM.- gcloud compute ssh INSTANCE_NAME 
- Crie sua própria rede de contêineres denominada - esp_net:- sudo docker network create --driver bridge esp_net
- 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_NAMEpelo nome do contêiner.
- Substitua YOUR_PROJECT_IDpelo ID do projetoGoogle Cloud usado ao enviar a imagem.
- Substitua YOUR_IMAGEpelo nome da imagem.
 
- Substitua 
- Solicite o nome do serviço da API. Este é o nome que você especificou no campo - namedo arquivo YAML de configuração do serviço.
- Execute uma instância da imagem do Docker do 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_NAMEpelo nome do serviço.
- Substitua YOUR_API_CONTAINER_NAMEpelo nome do contêiner da API.
 - A opção - --rollout_strategy=managedconfigura o ESP para usar a configuração mais recente do serviço implantado. Quando você especifica essa opção, até 5 minutos depois de implantar uma nova configuração de serviço, o ESP detecta a alteração e começa a usá-la automaticamente. Recomendamos especificar essa opção em vez de um ID de configuração específico para uso do ESP.
- Substitua 
Veja como configurar o ESP para usar um ID de configuração específico caso seja necessário:
- Inclua a opção - --versione defina-a como um ID de configuração específico.
- Remova a opção - --rollout_strategy=managedou defina- --rollout_strategycomo- fixed. A opção- fixedconfigura o ESP para usar a configuração de serviço que você especificou em- --version.
- Execute o comando - docker runnovamente.
Se você especificar as opções --rollout_strategy=managed e --version, o ESP será iniciado com a configuração determinada em --version, mas será executado no modo gerenciado e receberá a configuração mais recente.
Recomendamos não manter o ESP configurado para usar um ID de configuração específico por muito tempo. Isso porque, se você implantar uma configuração de serviço atualizada, terá que reiniciar o ESP para usar a nova configuração.
Para remover o ID de configuração específico:
- Nas sinalizações do ESP em - docker run, remova a opção- --version.
- Adicione a opção - --rollout_strategy=managed.
- 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:
- Solicite o nome do serviço da API. 
- Abra o arquivo de manifesto de implantação, chamado de - deployment.yaml, e adicione o seguinte à 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_NAMEpelo nome do serviço da API.
- Use o comando - kubectl create(em inglês) para iniciar o serviço do Kubernetes:- kubectl create -f deployment.yaml
Veja como configurar o ESP para usar um ID de configuração específico caso seja necessário:
- No arquivo de manifesto da implantação, adicione a opção - --versione defina-a como um ID de configuração específico.
- Remova - --rollout_strategy=managedou defina- --rollout_strategycomo- fixed. A opção- fixeddefine o ESP para usar a configuração de serviço que você especificou em- --version.
- Inicie o serviço do Kubernetes: - kubectl create -f deployment.yaml
Se você especificar as opções --rollout_strategy=managed e --version, o ESP será iniciado com a configuração determinada em --version, mas será executado no modo gerenciado e receberá a configuração mais recente.
Recomendamos não manter o ESP configurado para usar um ID de configuração específico por muito tempo. Isso porque, se você implantar uma configuração de serviço atualizada, terá que reiniciar o ESP para usar a nova configuração.
Para remover o ID de configuração específico:
- No Arquivo de manifesto de implantação, remova a opção - --version.
- Adicione - --rollout_strategy=managed.
- 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 a atividade da API
Depois de implantar o ESP e o back-end da API, será possível usar ferramentas como curl ou Postman para enviar solicitações à API. Se você não receber uma resposta bem-sucedida, consulte Como solucionar problemas em erros de resposta.
Após o envio de algumas solicitações, é possível fazer o seguinte:
- Visualizar os gráficos de atividade da sua API em Endpoints > Serviços. Talvez a solicitação leve alguns instantes para aparecer nos gráficos. 
- Veja os registros de solicitações da API na página Cloud Logging.