Azure Functions — Processamento serverless event-driven para FCG Games.
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
- Azure Functions Core Tools v4
- .NET 8 SDK
- Azure CLI
- Conta Azure com Service Bus e SendGrid ativados
Functions/
├── Email/
│ ├── WelcomeEmailFunction.cs → Trigger: UserCreatedEvent
│ └── PaymentNotificationFunction.cs → Trigger: PaymentProcessedEvent
local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"ServiceBusConnection": "<connection-string>",
"SendGridApiKey": "<api-key>"
}
}cd FCG-Functions
func startaz login
func azure functionapp publish fcg-functions
func azure functionapp logstream fcg-functions# 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 --verboseFROM 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/wwwrootapiVersion: 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- 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
FIAP Tech Challenge — Fase 4