diff --git a/.env.example b/.env.example index d0b5b86..39fcd64 100644 --- a/.env.example +++ b/.env.example @@ -59,7 +59,7 @@ MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION= +AWS_DEFAULT_REGION=us-east-1 API_GATEWAY_URL= AWS_BUCKET_CACHE=img-stack-dev-cache diff --git a/.github/workflows/tests_deploy.yml b/.github/workflows/tests_deploy.yml index c85c13b..5a12152 100644 --- a/.github/workflows/tests_deploy.yml +++ b/.github/workflows/tests_deploy.yml @@ -74,6 +74,19 @@ jobs: - name: Install Composer Dependencies run: composer install --prefer-dist --no-dev --no-scripts --no-progress --optimize-autoloader + - name: Copy .env + run: php -r "file_exists('.env') || copy('.env.example', '.env');" + + - name: Generate Application Key + run: php artisan key:generate + + - name: Pre-generate Laravel Cache Files + run: | + php artisan config:cache + php artisan route:cache + php artisan view:cache + php artisan event:cache + - name: Install Serverless Framework run: npm install -g serverless@3 @@ -85,3 +98,6 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + + diff --git a/README.md b/README.md index 1305800..57a8193 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ pré-processamento. ### Características Principais -- **Processamento Inteligente**: Decisão automática entre processamento síncrono e assíncrono +- **Processamento Assincrono**: Processamento feito totalmente via AWS SQS - **Cache Inteligente**: Sistema de cache baseado em conteúdo com TTL automático - **Arquitetura Serverless**: Escalabilidade automática usando AWS Lambda - **URLs Assinadas**: Segurança através do CloudFront com chaves privadas @@ -21,11 +21,11 @@ pré-processamento. - **WorkerService**: Gerencia jobs assíncronos via SQS e DynamoDB - **ProcessImageJob**: Worker Lambda para processamento pesado - **StorageService**: Abstração para S3 e CloudFront +- **DynamoDBService**: Responsável por gerenciar a tabela de jobs +- **RekognitionService**: Utiliza do serviço para análise de imagens com IA ### Fluxo de Processamento -#### Processamento Assíncrono - ``` Requisição → Verificar Cache na S3 → Adiciona à Fila → Retorna Informação `Retry-After` ↓ @@ -157,9 +157,6 @@ serverless deploy function --function web --stage dev ```bash # Deploy completo make deploy-prod - -# Deploy incremental -serverless deploy --stage prod ``` ### Verificação do Deploy @@ -203,14 +200,14 @@ serverless logs --function web --stage prod --tail - **S3 Bucket**: Cache de imagens com lifecycle policy (90 dias) - **DynamoDB**: - - Tabela principal para metadata + - Tabela para controle de jobs - GSI para queries por status - TTL automático #### Rede e Distribuição - **CloudFront**: CDN global com cache inteligente -- **SQS**: Fila principal + Dead Letter Queue +- **SQS**: Fila principal - **IAM Roles**: Permissões mínimas necessárias ### Otimizações de Performance @@ -248,6 +245,12 @@ serverless logs --function web --stage prod --tail | `make remove-dev` | Remove stack de desenvolvimento | | `make remove-prod` | Remove stack de produção | +### Outros + +| Comando | Descrição | +|-----------------|------------------------------| +| `make git-save` | Atalho para commit no github | + ### AWS ```bash