Este é um exemplo básico de Azure Function em .NET 8 com HTTP Trigger usando o modelo Isolated Worker.
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
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
# Simples
curl http://localhost:7071/api/HttpTriggerExample
# Com parâmetro name
curl "http://localhost:7071/api/HttpTriggerExample?name=João"
# Enviando JSON
curl -X POST http://localhost:7071/api/HttpTriggerExample \
-H "Content-Type: application/json" \
-d '{"name": "Maria", "idade": 25}'
- .NET 8 SDK ou superior
- Azure Functions Core Tools v4
- Azure CLI (opcional, para deploy)
# Verificar se já está instalado
dotnet --version
# Se não estiver instalado, baixe de: https://dotnet.microsoft.com/download
# 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
dotnet restore
# Compilar o projeto
dotnet build
# Executar as funções
func start
A função estará disponível em: http://localhost:7071/api/HttpTriggerExample
-
Copie o arquivo de exemplo:
cp requests.http.example requests.http.local
-
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
-
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
- ✅ 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
{
"message": "Olá, João! Esta é uma Azure Function .NET com GET.",
"method": "GET",
"timestamp": "2024-01-15T10:30:00.000Z",
"framework": ".NET 8"
}
{
"message": "Dados recebidos via POST! Olá, Maria!",
"method": "POST",
"timestamp": "2024-01-15T10:30:00.000Z",
"framework": ".NET 8",
"receivedData": {
"name": "Maria",
"idade": 25
}
}
az login
# 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
func azure functionapp publish myFunctionApp
# 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"}'