18 KiB
🚀 Guia Completo: Configure e Faça Deploy do Orquestrador
Tempo total: ~30 minutos
Este guia leva você desde a configuração no Google Cloud Console até o deploy da aplicação online.
📋 Índice
- Pré-requisitos
- FASE 1: Google Cloud Console
- FASE 2: Configurar Ambiente Local
- FASE 3: Testar Localmente
- FASE 4: Deploy no Cloud Run
- FASE 5: Verificar e Testar
- Troubleshooting
✅ Pré-requisitos
Antes de começar, você já deve ter:
-
Google Cloud SDK instalado no seu PC
- Windows: https://cloud.google.com/sdk/docs/install-windows
- Verificar: Abra terminal e digite
gcloud --version
-
Acesso a um projeto GCP fornecido pela sua empresa
-
Docker instalado (para testar localmente - opcional)
-
Git instalado no seu PC
-
Python 3.11+ instalado
Se não tiver algum, instale antes de continuar!
FASE 1: Google Cloud Console
⏱️ Tempo: ~10 minutos
Você vai configurar todos os recursos no Google Cloud Console. Siga cada passo na ordem.
PASSO 1: Identificar Seu Projeto
- Acesse: https://console.cloud.google.com/
- No topo esquerdo, clique no seletor de projeto
- Selecione o projeto fornecido pela sua empresa
- Copie e anote o Project ID que aparece no topo
Seu Project ID: _________________________________
PASSO 2: Ativar APIs Necessárias
Local: Menu ☰ → "APIs e Serviços" → "APIs e serviços ativados"
Você vai ativar 6 APIs. Para cada uma:
- Clique "Ativar APIs e Serviços" (botão azul no topo)
- Digite o nome da API na caixa de busca
- Clique na API
- Clique "Ativar"
- Aguarde ~1-2 minutos
- Volte e repita para a próxima
APIs para Ativar:
- Cloud Run API
- Cloud Build API
- Cloud SQL Admin API
- Artifact Registry API ⚠️ (busque em inglês)
- Vertex AI API (para usar LLM/Gemini)
- Compute Engine API
✅ Confirmação: Você deve ver todas as 6 APIs listadas em "APIs e serviços ativados"
PASSO 3: Criar Cloud SQL (Banco de Dados PostgreSQL)
Seu banco de dados onde a aplicação vai armazenar dados.
3.1 - Acessar Cloud SQL
Menu ☰ → "SQL" (dentro de "Bancos de Dados")
3.2 - Criar Nova Instância
- Clique "Criar instância"
- Selecione "PostgreSQL"
3.3 - Configurar Instância
Preencha com os seguintes valores:
-
ID da instância:
orquestrador-db -
Senha da instância: Escolha uma senha SEGURA (ex:
Abc@123xyz!)- ⚠️ Copie e guarde em local seguro!
- Senha raiz:
_________________________________
-
Versão do PostgreSQL:
16(ou15) -
Região:
us-central1(mesmo de Cloud Run depois) -
Disponibilidade zonal:
Zona única(está ok para começar)
3.4 - Configurar Conectividade
Na seção "Conectividade":
- Clique para expandir "Conectividade"
- Marque ✓ "IP público"
- Na seção "Conexões autorizadas de redes", clique "Criar rede"
- Nome:
cloudsql-network(ou deixe padrão) - Clique "Criar e voltar"
- Nome:
⚠️ Importante: Isso permite que Cloud Run se conecte ao banco de dados.
3.5 - Criar Instância
- Clique "Criar" (botão azul no final)
- Aguarde 5-10 minutos (status mudará de "criando..." para verde ✓)
PASSO 4: Configurar Cloud SQL - Usuários e Banco de Dados
Quando a instância estiver verde/pronta:
4.1 - Obter Dados de Conexão
-
Clique no nome
orquestrador-db -
Copie o Nome da conexão (aparece parte superior):
- Formato:
seu-projeto-id:us-central1:orquestrador-db - Copie:
_________________________________
- Formato:
-
Na aba "Visão geral", encontre "IP público" na seção "Conectividade"
- Copie:
_________________________________
- Copie:
4.2 - Criar Usuário do Banco
Na aba "Usuários e bancos de dados":
-
Clique "Criar usuário"
-
Preencha:
- Nome do usuário:
orquestrador - Senha: Escolha uma senha (ex:
Orm@2026!) - ⚠️ Copie e guarde!
- Senha do usuário orquestrador:
_________________________________
- Nome do usuário:
-
Clique "Criar"
4.3 - Criar Banco de Dados
Na aba "Usuários e bancos de dados", clique em "Bancos de dados":
- Clique "Criar banco de dados"
- Preencha:
- Nome do banco de dados:
orquestrador_db - Conjunto de caracteres:
utf8mb4
- Nome do banco de dados:
- Clique "Criar"
PASSO 5: Criar Conta de Serviço (Service Account)
Isso permite que Cloud Run se autentique no GCP.
5.1 - Ir para Credenciais
Menu ☰ → "APIs e Serviços" → "Credenciais"
5.2 - Criar Conta de Serviço
- Clique "Criar credenciais" → "Conta de serviço"
- Preencha:
- Nome da conta de serviço:
orquestrador-app - ID da conta de serviço:
orquestrador-app(preenchido automaticamente)
- Nome da conta de serviço:
- Clique "Criar e continuar"
5.3 - Atribuir Permissões
Na tela de permissões:
-
Clique "Selecionar uma função"
-
Procure e selecione cada uma das funções abaixo. Adicione todas:
Cliente do Cloud SQLDesenvolvedor do Cloud RunGravador do Registro de Artefatos
-
Clique "Continuar"
-
Clique "Concluído"
5.4 - Gerar Chave JSON
- Volte para "Credenciais"
- Clique na conta de serviço
orquestrador-app(em "Contas de serviço") - Vá para a aba "Chaves"
- Clique "Adicionar chave" → "Criar nova chave"
- Selecione "JSON"
- Clique "Criar"
⚠️ Um arquivo JSON será baixado automaticamente!
- Salve em:
D:\vitor\Pessoal\PJ\Orquestrador\service-account-key.json - Não compartilhe este arquivo com ninguém!
PASSO 6: Criar Registro de Artefatos (Container Registry)
Repository para armazenar suas imagens Docker.
6.1 - Acessar Registro
Menu ☰ → "Registro de Artefatos" → "Repositórios"
6.2 - Criar Repositório
- Clique "Criar repositório"
- Preencha:
- Nome:
orquestrador - Formato:
Docker - Localização:
us-central1(mesmo do Cloud SQL)
- Nome:
- Clique "Criar"
✅ Checklist - Fase 1 Concluída
Você deve ter anotado:
- Project ID:
_________________________________ - Cloud SQL Connection Name:
_________________________________ - Cloud SQL Public IP:
_________________________________ - Cloud SQL User:
orquestrador - Cloud SQL Password:
_________________________________ - Cloud SQL Root Password:
_________________________________ - Cloud SQL Database:
orquestrador_db - Service Account JSON file baixado e salvo
- 6 APIs ativadas
- Registro de Artefatos criado
Próximo: Fase 2 - Configurar Ambiente Local
FASE 2: Configurar Ambiente Local
⏱️ Tempo: ~5 minutos
Agora você vai configurar seu PC para comunicar com o GCP.
PASSO 1: Autenticar com Google Cloud SDK
Abra PowerShell e execute:
# Fazer login no Google Cloud
gcloud auth login
# Definir projeto padrão
gcloud config set project SEU-PROJECT-ID
# Exemplo:
gcloud config set project orquestrador-mvp-12345
Siga as instruções no navegador que abrir.
PASSO 2: Configurar Autenticação de Conta de Serviço
Ainda no PowerShell:
# Definir variável de ambiente para usar a conta de serviço
$env:GOOGLE_APPLICATION_CREDENTIALS = "D:\vitor\Pessoal\PJ\Orquestrador\service-account-key.json"
# Verificar que funcionou
gcloud auth list
PASSO 3: Criar Arquivo .env
Este arquivo contém suas credenciais e configurações.
3.1 - Criar o Arquivo
Na raiz do projeto (D:\vitor\Pessoal\PJ\Orquestrador\), crie um arquivo chamado .env com:
# ============================================
# CONFIGURAÇÕES DO GOOGLE CLOUD
# ============================================
PROJECT_ID=SEU-PROJECT-ID
GCP_REGION=us-central1
# ============================================
# CONFIGURAÇÕES DO BANCO DE DADOS
# ============================================
# URL de conexão direta (para testes locais)
DATABASE_URL=postgresql://orquestrador:SUA_SENHA@SEU_IP_PUBLICO:5432/orquestrador_db
# Nome da conexão Cloud SQL (para Cloud Run)
CLOUD_SQL_CONNECTION_NAME=seu-projeto:us-central1:orquestrador-db
# ============================================
# CONFIGURAÇÕES DE API
# ============================================
# Se usar Generative AI (Gemini)
# GOOGLE_API_KEY=sua-chave-api-aqui
# Se usar Mockaroo (dados fictícios)
# MOCKAROO_API_KEY=sua-chave-mockaroo-aqui
# ============================================
# OUTRAS CONFIGURAÇÕES
# ============================================
ENVIRONMENT=development
DEBUG=true
3.2 - Preencher com Seus Dados
Substitua os valores acima com:
SEU-PROJECT-ID→ seu Project ID do GCPSUA_SENHA→ senha do usuárioorquestradorno Cloud SQLSEU_IP_PUBLICO→ IP público do Cloud SQL
Exemplo completo:
PROJECT_ID=orquestrador-mvp-12345
GCP_REGION=us-central1
DATABASE_URL=postgresql://orquestrador:Orm@2026!@35.192.120.50:5432/orquestrador_db
CLOUD_SQL_CONNECTION_NAME=orquestrador-mvp-12345:us-central1:orquestrador-db
ENVIRONMENT=development
DEBUG=true
⚠️ IMPORTANTE: Nunca compartilhe este arquivo .env! Ele contém suas senhas!
PASSO 4: Instalar Dependências Python
Abra PowerShell na pasta do projeto:
# Ativar ambiente virtual (já deve estar ativo)
# & .\venv\Scripts\Activate.ps1
# Instalar dependências
pip install -r requirements.txt
# Verificar que funcionou
pip list | Select-String "fastapi|psycopg2"
✅ Checklist - Fase 2 Concluída
- Autenticado no Google Cloud (
gcloud auth listmostra sua conta) - Project ID configurado como padrão
- Arquivo
.envcriado e preenchido GOOGLE_APPLICATION_CREDENTIALSconfigurado- Dependências instaladas
Próximo: Fase 3 - Testar Localmente (opcional)
FASE 3: Testar Localmente (Opcional)
⏱️ Tempo: ~5 minutos
Teste a aplicação no seu PC antes de fazer deploy.
PASSO 1: Testar Conexão com Banco de Dados
# Instalar psql (client PostgreSQL) se não tiver
# Windows: https://www.postgresql.org/download/windows/
# Testar conexão
psql -h SEU_IP_PUBLICO -U orquestrador -d orquestrador_db -c "SELECT 1"
# Exemplo:
psql -h 35.192.120.50 -U orquestrador -d orquestrador_db -c "SELECT 1"
Se aparecer 1, conectou com sucesso! ✅
PASSO 2: Rodar a Aplicação Localmente
# Ir para a pasta do projeto
cd D:\vitor\Pessoal\PJ\Orquestrador
# Rodar a aplicação FastAPI
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Seu terminal mostrará:
INFO: Uvicorn running on http://127.0.0.1:8000
Deixe rodar!
PASSO 3: Testar Endpoints
Abra outro PowerShell (enquanto a aplicação está rodando):
# Testar endpoint de saúde
curl -X GET "http://localhost:8000/docs"
# Ou abra no navegador: http://localhost:8000/docs
Você verá a Swagger UI (interface visual da API).
PASSO 4: Testar Chat Endpoint
# Fazer uma requisição POST
curl -X POST "http://localhost:8000/chat" `
-H "Content-Type: application/json" `
-d @'{
"message": "Quero um carro até 50000 reais",
"user_id": "test"
}'
Se receber resposta → Aplicação está funcionando! ✅
PASSO 5: Parar a Aplicação
No PowerShell onde a aplicação está rodando:
# Pressione: Ctrl + C
✅ Checklist - Fase 3 Concluída
- Conectou ao banco de dados com sucesso
- Aplicação rodou localmente
- Swagger UI acessível em http://localhost:8000/docs
- Endpoint de chat respondeu
Próximo: Fase 4 - Deploy no Cloud Run
FASE 4: Deploy no Cloud Run
⏱️ Tempo: ~10 minutos
Colocar sua aplicação online no Google Cloud!
PASSO 1: Usar o Script de Deploy
Na raiz do projeto, existe um script deploy.sh que faz tudo automaticamente.
Para Windows (PowerShell):
# Ir para a pasta do projeto
cd D:\vitor\Pessoal\PJ\Orquestrador
# Executar deploy
bash deploy.sh SEU-PROJECT-ID us-central1
# Exemplo:
bash deploy.sh orquestrador-mvp-12345 us-central1
O que este script faz:
- Faz build da imagem Docker
- Envia a imagem para o Registro de Artefatos
- Deploy automático no Cloud Run
- Configura variáveis de ambiente
- Libera acesso público
Aguarde ~5-10 minutos enquanto o script roda.
PASSO 2: Monitorar o Deploy
Você verá logs na tela mostrando o progresso:
Building Docker image...
Building image gcr.io/seu-projeto/orquestrador:latest
...
Pushing image to Container Registry...
...
Deploying to Cloud Run...
...
Deployment completed!
PASSO 3: Obter URL de Acesso
Quando o deploy terminar, execute:
# Obter URL do Cloud Run
gcloud run services describe orquestrador `
--region=us-central1 `
--format='value(status.url)'
Você verá algo como:
https://orquestrador-xxxxx.a.run.app
Copie esta URL! Você usará para acessar a aplicação.
✅ Checklist - Fase 4 Concluída
- Deploy script executado sem erros
- Imagem Docker criada
- Imagem enviada para Registro de Artefatos
- Serviço Cloud Run criado
- URL de acesso obtida
- URL de acesso:
_________________________________
Próximo: Fase 5 - Verificar e Testar
FASE 5: Verificar e Testar
⏱️ Tempo: ~3 minutos
Validar que tudo está funcionando online.
PASSO 1: Testar Swagger UI Online
No navegador, acesse:
https://SUA-URL-DO-CLOUD-RUN/docs
Exemplo:
https://orquestrador-xxxxx.a.run.app/docs
Você deve ver a interface Swagger UI com todos os endpoints.
PASSO 2: Testar Chat Endpoint
Na Swagger UI:
- Clique em POST /chat
- Clique "Try it out"
- No campo "Request body", preencha:
{ "message": "Quero um carro até 50000 reais", "user_id": "test" } - Clique "Execute"
Você deve receber uma resposta do LLM integrado! ✅
PASSO 3: Testar via Curl (Terminal)
# Substituir pela sua URL
$URL = "https://orquestrador-xxxxx.a.run.app"
curl -X POST "$URL/chat" `
-H "Content-Type: application/json" `
-d @'{
"message": "Quero um carro até 50000 reais",
"user_id": "test"
}'
PASSO 4: Ver Logs
Para debugar se algo não funcionar:
# Ver últimos 50 logs
gcloud run logs read orquestrador --region=us-central1 --limit=50
# Ver logs em tempo real (streaming)
gcloud run logs read orquestrador --region=us-central1 --follow
✅ Checklist - Fase 5 Concluída
- Swagger UI acessível online
- Chat endpoint respondeu
- Curl funcionou
- Aplicação está ONLINE! 🎉
🎉 Sucesso!
Sua aplicação está online e funcionando!
Resumo do que você fez:
- ✅ Ativou 6 APIs no Google Cloud
- ✅ Criou Cloud SQL PostgreSQL com usuário e banco
- ✅ Criou Service Account com permissões
- ✅ Criou Registro de Artefatos
- ✅ Configurou arquivo
.envlocalmente - ✅ Testou localmente
- ✅ Fez deploy no Cloud Run
- ✅ Validou que funciona online
📋 Referência Rápida para Próximas Vezes
Fazer novo deploy após mudanças:
cd D:\vitor\Pessoal\PJ\Orquestrador
bash deploy.sh SEU-PROJECT-ID us-central1
Ver status do serviço:
gcloud run services describe orquestrador --region=us-central1
Ver logs:
gcloud run logs read orquestrador --region=us-central1 --limit=50 --follow
Parar o serviço:
gcloud run services delete orquestrador --region=us-central1
Troubleshooting
Problema: "Erro ao conectar ao banco de dados"
Solução:
- Verifique se IP público está correto:
gcloud sql instances describe orquestrador-db --format="value(ipAddresses[0].ipAddress)" - Verifique arquivo
.env- DATABASE_URL está correto? - Verifique se usuário
orquestradorfoi criado - Teste:
psql -h IP -U orquestrador -d orquestrador_db -c "SELECT 1"
Problema: "Cloud Run não consegue conectar ao banco"
Solução:
- Verifique se Cloud SQL Connection Name está correto no
.env - Verifique se a rede foi criada
- Cloud Run precisa estar na mesma região do Cloud SQL
Problema: "Imagem Docker não está sendo enviada"
Solução:
- Verifique se Docker está instalado:
docker --version - Verifique se Registro de Artefatos foi criado no console
- Verifique autenticação:
gcloud auth login
Problema: "Erro ao ativar API"
Solução:
- Confirme que você tem permissão no projeto (pedir ao admin)
- Espere 1-2 minutos e tente novamente
- Ao comando:
gcloud services enable cloudrun.googleapis.com
Problema: "404 - Endpoint não encontrado"
Solução:
- Confirme a URL está correta:
gcloud run services describe orquestrador --region=us-central1 --format="value(status.url)" - Verifique se o deploy completou:
gcloud run services describe orquestrador --region=us-central1 - Aguarde ~1 minuto após o deploy terminar
📞 Próximos Passos
- Integrar com Banco de Dados Real: Configurar seeders de dados
- CI/CD Automático: GitHub Actions para deploy automático
- Monitoramento: Configurar alertas e dashboards
- Escalabilidade: Ajustar autoscaling de Cloud Run
Dúvidas? Refer-se a:
- DEPLOY_5_PASSOS.md - Resumo rápido
- TROUBLESHOOTING.md - Problemas específicos
- PROJECT_STRUCTURE.md - Estrutura do projeto
Bom deployment! 🚀