infracloud/OCI-MFE-STEPBYSTEP.md

5.5 KiB

Passo a Passo: Deploy mfe-user para OCI

Visão Geral

Este guia mostra como fazer o deploy do mfe-user (Micro Frontend) para a OCI usando:

  • Object Storage para arquivos estáticos
  • API Gateway para servir o MFE
  • OCI CLI via Azure DevOps

Estado Atual da Infraestrutura (18/02/2026)

Recurso Status Ação Necessária
VCN (Dev) Existe Nenhuma
Subnet (sbn-lb-1) Existe Nenhuma
API Gateway ⏸️ Pausado Não será usado por enquanto
Bucket mfe-user-dev Criado Pipeline cria automaticamente
PAR mfe-user-dev Criado Pipeline cria automaticamente

Buckets OCI Criados

Bucket Ambiente MFE Status
mfe-user-dev Dev mfe-user Criado e funcionando

Passo 1: Configurar Variable Group

No Azure DevOps: Project SettingsPipelinesLibraryVariable Groups

Variáveis necessárias no oci-terraform

Variável Tipo Valor
OCI_TENANCY_OCID Secret OCID da tenancy
OCI_USER_OCID Secret OCID do usuário
OCI_FINGERPRINT Secret Fingerprint da chave
OCI_PRIVATE_KEY_B64 Secret Chave privada (base64)
OCI_REGION 普通 sa-saopaulo-1
COMPARTMENT_PARENT_OCID Secret ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a
OCI_SUBNET_OCID Secret ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq

Passo 2: Executar Pipeline

A pipeline cria automaticamente:

  1. Bucket mfe-user-dev no Object Storage
  2. Upload dos arquivos do build
  3. Pre-Authenticated Request (PAR)
  4. API Gateway com deployment

Via Azure DevOps

  1. Vá no repositório mfe-user
  2. Faça push para branch devops
  3. Execute a pipeline azure-pipelines.yml
  4. Parâmetro cloudProvider: oci

Fluxo da Pipeline

┌─────────────┐
│   BUILD     │ → npm ci + npm run build:dev
└─────────────┘
      │
      ▼
┌─────────────┐
│   UPLOAD    │ → Upload para OCI Object Storage
│   (OCI)     │   Bucket: mfe-<nome>-dev
└─────────────┘
      │
      ▼
┌─────────────┐
│  CREATEPAR  │ → Cria Pre-Authenticated Request
└─────────────┘

Nota: O estágio DeployToAPIGateway foi removido. Não haverá atividade do API Gateway por enquanto.


Passo 3: Obter URL do API Gateway

oci api-gateway gateway list \
  --compartment-id "ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a"

URL: https://<gateway-ocid>.apigateway.sa-saopaulo-1.oci.customer-oci.com


Passo 4: Testar

Acesse no navegador:

https://<gateway-ocid>.apigateway.sa-saopaulo-1.oci.customer-oci.com/

Ambientes

Ambiente Bucket Subnet
Dev mfe-user-dev sbn-lb-1
HML mfe-user-hml (definir)
PROD mfe-user-prod (definir)

Troubleshooting

O que acontece se disparar a pipeline sem configuração?

Estágio Se faltar configuração Resultado
BUILD - Sempre funciona
UPLOADTOOCI - Bucket criado automaticamente
CREATEPAR - PAR criado automaticamente
DEPLOYTOAPIGW OCI_SUBNET_OCID não configurado ERRO
DEPLOYTOAPIGW Subnet não existe ERRO

Recursos Criados Automaticamente pela Pipeline

Recurso Criado Automaticamente?
Bucket mfe-user-dev Sim
PAR mfe-user-dev-par Sim
API Gateway mfe-user-gateway Sim (se subnet existir)
Deployment mfe-user-deployment Sim

Recursos Obrigatórios (devem existir antes)

Recurso Status Dev
VCN Já existe
Subnet (sbn-lb-1) Já existe
OCI_SUBNET_OCID no Variable Group Precisa adicionar

Cenário: Disparar sem OCI_SUBNET_OCID

BUILD           → ✅ Sucesso
UPLOADTOOCI     → ✅ Sucesso (bucket criado)
CREATEPAR       → ✅ Sucesso (PAR criado)
DEPLOYTOAPIGW   → ❌ ERRO: subnet não encontrada

Resultado: Bucket e PAR criados, mas API Gateway falha.

Solução: Adicionar OCI_SUBNET_OCID e reexecutar a pipeline.

Problemas Comuns

Problema Causa Solução
Pipeline falha no API Gateway OCI_SUBNET_OCID não configurada Adicionar no Variable Group
403 Forbidden PAR expirou Executar pipeline novamente
Arquivos não carregam (404) Rotas incorretas Verificar rota /{req.*}

Comandos Úteis

# Listar buckets
oci os bucket list --compartment-id <compartment-id>

# Listar objetos no bucket
oci os object list --namespace-name "grbb7qzeuoag" --bucket-name "mfe-user-dev"

# Listar API Gateways
oci api-gateway gateway list --compartment-id <compartment-id>

# Ver deployment
oci api-gateway deployment get --deployment-id <deployment-id>

# Deletar PAR antigo
oci os preauth-request delete --namespace-name "grbb7qzeuoag" --bucket-name "mfe-user-dev" --par-id <par-id>

Referências