GCP Google Cloud Platform
gcloudgsutilCloud Run
⚙️ Configuração & Auth
| Login interativo | gcloud auth login |
| Auth para aplicações (ADC) | gcloud auth application-default login |
| Definir projeto padrão | gcloud config set project PROJECT_ID |
| Criar configuração de ambiente | gcloud config configurations create prod |
| Listar configurações | gcloud config configurations list |
| Ativar configuração | gcloud config configurations activate prod |
| Ver config atual | gcloud config list |
| Revogar credenciais | gcloud auth revoke --all |
🚀 Cloud Run
| Deploy de serviço | gcloud run deploy SERVICO --image gcr.io/PROJ/IMG --platform managed --region us-central1 --allow-unauthenticated |
| Deploy com env vars | gcloud run deploy SERVICO --image IMG --set-env-vars DB_URL=postgres://... |
| Listar serviços | gcloud run services list --platform managed |
| Descrever serviço | gcloud run services describe SERVICO --region us-central1 |
| Deletar serviço | gcloud run services delete SERVICO --region us-central1 |
| Mínimo de instâncias (evitar cold start) | gcloud run services update SERVICO --min-instances=1 |
| Ver URL do serviço | gcloud run services describe SERVICO --format='value(status.url)' |
🖥️ Compute Engine
| Listar instâncias | gcloud compute instances list |
| SSH em instância | gcloud compute ssh INSTANCIA --zone us-central1-a |
| Iniciar / parar instância | gcloud compute instances start INSTANCIA --zone us-central1-a |
| Criar VM simples | gcloud compute instances create vm-1 --machine-type=e2-micro --zone=us-central1-a --image-family=debian-12 --image-project=debian-cloud |
| Copiar arquivo para VM | gcloud compute scp ./app.py INSTANCIA:~/ --zone us-central1-a |
🪣 GCS · Container Registry
| Listar buckets | gsutil ls |
| Upload de arquivo | gsutil cp arquivo.csv gs://meu-bucket/pasta/ |
| Sync de pasta | gsutil -m rsync -r ./dist gs://meu-bucket/ |
| Tornar bucket público | gsutil iam ch allUsers:objectViewer gs://meu-bucket |
| Fazer build via Cloud Build | gcloud builds submit --tag gcr.io/PROJ/minha-app . |
| Listar imagens no GCR | gcloud container images list --repository=gcr.io/PROJETO |
🚨 Erros Frequentes & Fixes
| PERMISSION_DENIED | Verifique roles IAM: gcloud projects get-iam-policy PROJETO — adicione o role necessário ao Service Account. |
| Cloud Run: Container failed to start | O Cloud Run espera PORT=8080. Certifique-se que a app escuta em 0.0.0.0:8080 e o Dockerfile expõe essa porta. |
| Quota exceeded | IAM & Admin → Quotas no console. Mude de região ou solicite aumento. Use gcloud compute regions list para ver alternativas. |
| gcloud: command not found | Instale o SDK: curl https://sdk.cloud.google.com | bash e reinicie o shell. |
| Cloud Run: too many requests (429) | Aumente --concurrency e --max-instances no deploy. Ou use Cloud Tasks para processar filas. |