Skip to content

FIAP/dotnet-az-funcion-ex1

Repository files navigation

Azure Function .NET - Exemplo Simples

Este é um exemplo básico de Azure Function em .NET 8 com HTTP Trigger usando o modelo Isolated Worker.

🏗️ Estrutura do Projeto

exemplo1/
├── AzureFunctionExample.csproj  # Arquivo de projeto .NET
├── Program.cs                   # Ponto de entrada da aplicação
├── HttpTriggerFunction.cs       # Função HTTP trigger
├── host.json                    # Configuração do Azure Functions runtime
├── local.settings.json          # Configurações locais
├── README.md                    # Este arquivo
└── .gitignore                   # Arquivos ignorados pelo Git

🚀 Funcionalidades

A função HttpTriggerExample suporta:

  • GET: Retorna uma mensagem de saudação personalizada
  • POST: Processa dados JSON enviados no corpo da requisição
  • Tratamento de Erros: Respostas adequadas para métodos não suportados e JSON inválido

📝 Exemplos de Uso

GET Request

# Simples
curl http://localhost:7071/api/HttpTriggerExample

# Com parâmetro name
curl "http://localhost:7071/api/HttpTriggerExample?name=João"

POST Request

# Enviando JSON
curl -X POST http://localhost:7071/api/HttpTriggerExample \
  -H "Content-Type: application/json" \
  -d '{"name": "Maria", "idade": 25}'

🛠️ Pré-requisitos

  • .NET 8 SDK ou superior
  • Azure Functions Core Tools v4
  • Azure CLI (opcional, para deploy)

📋 Instalação e Execução

1. Instalar .NET 8 SDK

# Verificar se já está instalado
dotnet --version

# Se não estiver instalado, baixe de: https://dotnet.microsoft.com/download

2. Instalar Azure Functions Core Tools

# macOS (usando Homebrew)
brew tap azure/functions
brew install azure-functions-core-tools@4

# ou usando npm
npm install -g azure-functions-core-tools@4 --unsafe-perm true

3. Restaurar Dependências

dotnet restore

4. Executar Localmente

# Compilar o projeto
dotnet build

# Executar as funções
func start

A função estará disponível em: http://localhost:7071/api/HttpTriggerExample

🔐 Configuração de Testes (IMPORTANTE)

Para testar no Azure:

  1. Copie o arquivo de exemplo:

    cp requests.http.example requests.http.local
  2. Configure suas credenciais em requests.http.local:

    • Obtenha sua Function Key no Azure Portal → Function Keys → default
    • Substitua SUA_FUNCTION_KEY_AQUI pela chave real
    • Substitua SEU-APP-NAME.azurewebsites.net pela URL da sua function app
  3. Use o arquivo .local para testes:

    # O arquivo .local está no .gitignore e NÃO será commitado
    # Use este arquivo para testes com credenciais reais

⚠️ Boas Práticas de Segurança:

  • NUNCA commite chaves ou secrets no Git
  • ✅ Use sempre arquivos .local para configurações sensíveis
  • ✅ O arquivo requests.http deve conter apenas placeholders
  • ✅ Mantenha credenciais em variáveis de ambiente quando possível

📊 Exemplo de Resposta

GET Response

{
  "message": "Olá, João! Esta é uma Azure Function .NET com GET.",
  "method": "GET",
  "timestamp": "2024-01-15T10:30:00.000Z",
  "framework": ".NET 8"
}

POST Response

{
  "message": "Dados recebidos via POST! Olá, Maria!",
  "method": "POST",
  "timestamp": "2024-01-15T10:30:00.000Z",
  "framework": ".NET 8",
  "receivedData": {
    "name": "Maria",
    "idade": 25
  }
}

🚀 Deploy para Azure

1. Fazer Login no Azure

az login

2. Criar Recursos no Azure

# Criar resource group
az group create --name myResourceGroup --location eastus

# Criar storage account
az storage account create \
  --name mystorageaccount \
  --location eastus \
  --resource-group myResourceGroup \
  --sku Standard_LRS

# Criar function app
az functionapp create \
  --resource-group myResourceGroup \
  --consumption-plan-location eastus \
  --runtime dotnet-isolated \
  --runtime-version 8 \
  --functions-version 4 \
  --name myFunctionApp \
  --storage-account mystorageaccount

3. Deploy da Função

func azure functionapp publish myFunctionApp

🧪 Testando a Função

Usando curl

# GET com parâmetro
curl "https://myfunctionapp.azurewebsites.net/api/HttpTriggerExample?name=Teste"

# POST com JSON
curl -X POST https://myfunctionapp.azurewebsites.net/api/HttpTriggerExample \
  -H "Content-Type: application/json" \
  -d '{"name": "Azure", "version": "v4"}'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages