O Cloud Run é um serviço serverless, escalonável e de pagamento por utilização e execução, onde você não precisa gerenciar servidores. Ele permite que você faça deploy de um container stateless, ou seja, você pode ter qualquer coisa dentro de um container e fazê-lo serverless.
O poder do Cloud Run é essa possibilidade de poder usar qualquer linguagem, biblioteca, binário ou sistema operacional. Ele permite que você exporte apenas uma porta do seu cortainer. Pessoalmente esse é o meu serviço favorito da GCP!
Essa é a documentação oficial do Cloud Run.
Usarei uma API que returna um Hello Heart escrito em Go, você pode vê-la aqui.
Você pode rodar o exemplo da seguinte forma:
docker build . -t heart-run
docker run -p 8080:8080 -e PORT=8080 heart-run
E acesse o endereço localhost:8080 no seu navegador.
Para usar o Run, antes você deve ativar os serviços do Cloud Run, Container Registry e Cloud Build no seu projeto:
gcloud services enable cloudbuild.googleapis.com run.googleapis.com containerregistry.googleapis.com
Precisamos subir a imagem do nosso container para o registro de containers:
gcloud builds submit --tag gcr.io/$PROJECT_ID/heart-run
Para fazer deploy da imagem, use o seguinte comando:
gcloud run deploy $PROJECT_ID --image gcr.io/$PROJECT_ID/heart-run --region us-central1 --platform managed --allow-unauthenticated
Após rodar o comando, ele retornará um log dessa forma:
$ gcloud run deploy $PROJECT_ID --image gcr.io/$PROJECT_ID/heart-run --region us-central1 --platform managed --allow-unauthenticated
Deploying container to Cloud Run service [heart-exemplo] in project [heart-exemplo] region [us-central1]
✓ Deploying new service... Done.
✓ Creating Revision... Initializing project for the current region.
✓ Routing traffic...
✓ Setting IAM Policy...
Done.
Service [heart-exemplo] revision [heart-exemplo-00001-tuw] has been deployed and is serving 100 percent of traffic.
Service URL: https://heart-exemplo-5cp6v24drq-uc.a.run.app
Acesse essa URL no seu navegador e pronto! Seu código esta em produção.
No próximo capítulo vamos criar ver sobre App Engine.