You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/GUIA_COMPLETO_CONFIGURE_E_D...

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

  1. Pré-requisitos
  2. FASE 1: Google Cloud Console
  3. FASE 2: Configurar Ambiente Local
  4. FASE 3: Testar Localmente
  5. FASE 4: Deploy no Cloud Run
  6. FASE 5: Verificar e Testar
  7. Troubleshooting

Pré-requisitos

Antes de começar, você já deve ter:

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

  1. Acesse: https://console.cloud.google.com/
  2. No topo esquerdo, clique no seletor de projeto
  3. Selecione o projeto fornecido pela sua empresa
  4. 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:

  1. Clique "Ativar APIs e Serviços" (botão azul no topo)
  2. Digite o nome da API na caixa de busca
  3. Clique na API
  4. Clique "Ativar"
  5. Aguarde ~1-2 minutos
  6. 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

  1. Clique "Criar instância"
  2. 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 (ou 15)

  • 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":

  1. Clique para expandir "Conectividade"
  2. Marque ✓ "IP público"
  3. Na seção "Conexões autorizadas de redes", clique "Criar rede"
    • Nome: cloudsql-network (ou deixe padrão)
    • Clique "Criar e voltar"

⚠️ Importante: Isso permite que Cloud Run se conecte ao banco de dados.

3.5 - Criar Instância

  1. Clique "Criar" (botão azul no final)
  2. 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

  1. Clique no nome orquestrador-db

  2. Copie o Nome da conexão (aparece parte superior):

    • Formato: seu-projeto-id:us-central1:orquestrador-db
    • Copie: _________________________________
  3. Na aba "Visão geral", encontre "IP público" na seção "Conectividade"

    • Copie: _________________________________

4.2 - Criar Usuário do Banco

Na aba "Usuários e bancos de dados":

  1. Clique "Criar usuário"

  2. Preencha:

    • Nome do usuário: orquestrador
    • Senha: Escolha uma senha (ex: Orm@2026!)
    • ⚠️ Copie e guarde!
    • Senha do usuário orquestrador: _________________________________
  3. Clique "Criar"

4.3 - Criar Banco de Dados

Na aba "Usuários e bancos de dados", clique em "Bancos de dados":

  1. Clique "Criar banco de dados"
  2. Preencha:
    • Nome do banco de dados: orquestrador_db
    • Conjunto de caracteres: utf8mb4
  3. 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

  1. Clique "Criar credenciais""Conta de serviço"
  2. Preencha:
    • Nome da conta de serviço: orquestrador-app
    • ID da conta de serviço: orquestrador-app (preenchido automaticamente)
  3. Clique "Criar e continuar"

5.3 - Atribuir Permissões

Na tela de permissões:

  1. Clique "Selecionar uma função"

  2. Procure e selecione cada uma das funções abaixo. Adicione todas:

    • Cliente do Cloud SQL
    • Desenvolvedor do Cloud Run
    • Gravador do Registro de Artefatos
  3. Clique "Continuar"

  4. Clique "Concluído"

5.4 - Gerar Chave JSON

  1. Volte para "Credenciais"
  2. Clique na conta de serviço orquestrador-app (em "Contas de serviço")
  3. Vá para a aba "Chaves"
  4. Clique "Adicionar chave""Criar nova chave"
  5. Selecione "JSON"
  6. 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

  1. Clique "Criar repositório"
  2. Preencha:
    • Nome: orquestrador
    • Formato: Docker
    • Localização: us-central1 (mesmo do Cloud SQL)
  3. 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 GCP
  • SUA_SENHA → senha do usuário orquestrador no Cloud SQL
  • SEU_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 list mostra sua conta)
  • Project ID configurado como padrão
  • Arquivo .env criado e preenchido
  • GOOGLE_APPLICATION_CREDENTIALS configurado
  • 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:

  1. Faz build da imagem Docker
  2. Envia a imagem para o Registro de Artefatos
  3. Deploy automático no Cloud Run
  4. Configura variáveis de ambiente
  5. 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:

  1. Clique em POST /chat
  2. Clique "Try it out"
  3. No campo "Request body", preencha:
    {
      "message": "Quero um carro até 50000 reais",
      "user_id": "test"
    }
    
  4. 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:

  1. Ativou 6 APIs no Google Cloud
  2. Criou Cloud SQL PostgreSQL com usuário e banco
  3. Criou Service Account com permissões
  4. Criou Registro de Artefatos
  5. Configurou arquivo .env localmente
  6. Testou localmente
  7. Fez deploy no Cloud Run
  8. 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:

  1. Verifique se IP público está correto: gcloud sql instances describe orquestrador-db --format="value(ipAddresses[0].ipAddress)"
  2. Verifique arquivo .env - DATABASE_URL está correto?
  3. Verifique se usuário orquestrador foi criado
  4. Teste: psql -h IP -U orquestrador -d orquestrador_db -c "SELECT 1"

Problema: "Cloud Run não consegue conectar ao banco"

Solução:

  1. Verifique se Cloud SQL Connection Name está correto no .env
  2. Verifique se a rede foi criada
  3. Cloud Run precisa estar na mesma região do Cloud SQL

Problema: "Imagem Docker não está sendo enviada"

Solução:

  1. Verifique se Docker está instalado: docker --version
  2. Verifique se Registro de Artefatos foi criado no console
  3. Verifique autenticação: gcloud auth login

Problema: "Erro ao ativar API"

Solução:

  1. Confirme que você tem permissão no projeto (pedir ao admin)
  2. Espere 1-2 minutos e tente novamente
  3. Ao comando: gcloud services enable cloudrun.googleapis.com

Problema: "404 - Endpoint não encontrado"

Solução:

  1. Confirme a URL está correta: gcloud run services describe orquestrador --region=us-central1 --format="value(status.url)"
  2. Verifique se o deploy completou: gcloud run services describe orquestrador --region=us-central1
  3. 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:

Bom deployment! 🚀