Como desenvolver seu serviço

Nesta página, descrevemos alguns itens que você precisa conhecer para começar a desenvolver um serviço para o Cloud Run.

Exigências de código

Atenda aos requisitos a seguir ao desenvolver um serviço:

  • O serviço precisa detectar solicitações. É possível configurar a porta em que as solicitações são enviadas. Dentro das instâncias de contêiner do Cloud Run, o valor da variável de ambiente PORT sempre reflete a porta para a qual as solicitações são enviadas. Seu código precisa verificar a existência da variável de ambiente PORT e, se ela estiver presente, detectá-la para maximizar a portabilidade.
  • O serviço precisa ser do tipo sem estado. Ele não pode depender de um estado local permanente.
  • O serviço não pode executar atividades em segundo plano fora do escopo do processamento de solicitações.

Confira mais detalhes sobre essas restrições no contrato do ambiente de execução do Contêiner.

Compatibilidade com linguagens de programação

O Cloud Run permite que você grave códigos na linguagem de programação de sua preferência.

O guia de início rápido Compilar e implantar fornece amostras em muitas linguagens conhecidas.

Como usar um servidor da Web

Use um servidor da Web para realizar detecções na porta necessária, bem como para processar e rotear solicitações recebidas. Por exemplo, os desenvolvedores do Node.js podem usar o Express.js, os desenvolvedores do Python podem usar o Flask, os desenvolvedores do Ruby podem usar o Sinatra, e assim por diante.

Como contentorizar seu código

Para implantar no Cloud Run, é preciso fornecer uma imagem de contêiner. Uma imagem de contêiner é um formato de empacotamento que inclui seu código, pacotes, qualquer dependência binária necessária, o sistema operacional a ser usado e tudo que for preciso para executar seu serviço.

Um arquivo chamado Dockerfile é comumente usado para declarar como compilar a imagem do contêiner. Consulte exemplos de Dockerfiles para linguagens conhecidas no guia de início rápido de compilação e implantação.

Em geral, os Dockerfiles começam com uma imagem de base (por exemplo, FROM golang:1.11). É possível encontrar imagens de base mantidas por autores de SOs e linguagens no Docker Hub (em inglês). O Cloud Build verifica se há imagens em cache antes de extrair do Docker Hub. Se você usar uma ferramenta de criação de terceiros, poderá configurar o daemon do Docker para verificar se há imagens no mesmo cache. Também é possível encontrar imagens de base gerenciadas pelo Google no Google Cloud Marketplace.

Se você tem seus próprios binários, confira se eles foram compilados para o Linux ABI x86_64.

Estes recursos fornecem informações adicionais sobre os Dockerfiles:

A seguir