Skip to content

sorza/FCG-Functions

Repository files navigation

⚡ FCG-Functions

Azure Functions — Processamento serverless event-driven para FCG Games.

Azure Functions .NET 8 Serverless Event-Driven

📝 Descrição

FCG-Functions executa tarefas assíncronas serverless:

  • WelcomeEmailFunction: Envia email de boas-vindas (trigger: UserCreatedEvent)
  • PaymentNotificationFunction: Notifica sobre status de pagamento (trigger: PaymentProcessedEvent)
  • Auto-scaling: Escala de 0 a milhares de instâncias automaticamente
  • Sem overhead: Pague apenas pelos milissegundos executados

🚀 Pré-requisitos

  • Azure Functions Core Tools v4
  • .NET 8 SDK
  • Azure CLI
  • Conta Azure com Service Bus e SendGrid ativados

🏗️ Estrutura

Functions/
├── Email/
│   ├── WelcomeEmailFunction.cs      → Trigger: UserCreatedEvent
│   └── PaymentNotificationFunction.cs → Trigger: PaymentProcessedEvent

⚙️ Configuração Local

local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
    "ServiceBusConnection": "<connection-string>",
    "SendGridApiKey": "<api-key>"
  }
}

🚀 Como Executar

Local

cd FCG-Functions
func start

Deploy no Azure

az login
func azure functionapp publish fcg-functions
func azure functionapp logstream fcg-functions

🧪 Testes

# Publicar evento no Service Bus
az servicebus topic message send \
  --resource-group fcg-microsservices \
  --namespace-name fcg-azure-servicebus \
  --topic-name users-topic \
  --body '{
    "userId":"123",
    "email":"test@example.com",
    "createdAt":"2026-01-09T00:00:00Z"
  }'

# Monitorar logs
func start --verbose

🐳 Docker

FROM mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY publish /home/site/wwwroot

☸️ Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: fcg-functions
spec:
  replicas: 1
  selector:
    matchLabels:
      app: fcg-functions
  template:
    metadata:
      labels:
        app: fcg-functions
    spec:
      containers:
      - name: fcg-functions
        image: fcg-functions:latest
        env:
        - name: ServiceBusConnection
          valueFrom:
            secretKeyRef:
              name: servicebus-secret
              key: connection-string
        - name: SendGridApiKey
          valueFrom:
            secretKeyRef:
              name: sendgrid-secret
              key: api-key

📊 Monitoramento

  • Application Insights: Métricas, logs estruturados
  • Execution Count: Número de execuções
  • Execution Duration: Tempo de processamento
  • Failure Rate: Taxa de falhas/retries
  • Dead Letter Messages: Mensagens problemáticas

📚 Referências


FIAP Tech Challenge — Fase 4

About

Funções serverless do Azure Functions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors