Dicas de .NET

Como criar e publicar uma Azure Function em C# para consultar o mercado de ações (Parte 2)

Criando uma Azure Function para verificar preços de ações (C#)

Azure Functions em C#: consulte ações e envie por e-mail com Resend (Parte 2)

Crie uma Function em .NET com Timer Trigger, consuma a API Alpha Vantage e mande a cotação por e-mail

Neste passo a passo você vai criar uma Azure Function em C# (.NET) com Timer Trigger para consultar a cotação de ações na API Alpha Vantage e enviar um e-mail com o último fechamento usando o serviço Resend. O vídeo cobre a instalação das ferramentas, criação do projeto com Azure Functions Core Tools, configuração de secrets no local.settings.json, debug local com Azurite, parsing do JSON (System.Text.Json), montagem de HTML e envio via HTTP (sem SDK). Ao final, é mostrado o e-mail recebido com a cotação.

Continuação prática da série: publicamos a Azure Function em C# que consulta cotações (Alpha Vantage) e envia e-mails com Resend. Você verá como preparar o ambiente, criar e organizar recursos (Resource Group, Storage Account, Function App), configurar segredos (API Keys), publicar via Azure Functions Core Tools e VS Code, conferir no portal do Azure, ajustar o agendamento (CRON) e, por fim, limpar tudo com segurança.

O que você vai aprender:

- Instalar/usar Azure CLI (az) e fazer login
- Criar Resource Group, Storage Account (Standard_LRS) e Function App (Consumption, Windows, .NET/Functions v4)
- Configurar app settings (Resend e Alpha Vantage) via CLI
- Publicar com func azure functionapp publish
- Verificar recursos e logs no portal do Azure
- Ajustar CRON (NCRONTAB) para executar diariamente às 08:00
- Deploy alternativo pelo VS Code (Deploy to Azure)
- Limpeza total com az group delete (atenção!)

Pré-requisitos:
- Node.js e npm
- NET SDK 8 instalado
- VS Code com extensões C#, Azure Functions e Azure Resources
- Conta Resend com domínio verificado (para envio)
- Chave gratuita da Alpha Vantage

---

### Capítulos
00:00:00 Preparos: parar Azurite, terminal e Azure CLI
00:01:34 Instalação do Azure CLI: opções (Windows/Linux/macOS/Docker/Cloud Shell)
00:02:36 az login e seleção da assinatura
00:03:24 Por que usar Resource Group e criação com az group create
00:04:53 Criando Storage Account (nome, região, SKU Standard_LRS)
00:07:25 Criando a Function App (Consumption, runtime .NET, v4, Windows)
00:11:03 Conferindo a Function App com az functionapp list -o table
00:12:23 Listando todos os recursos do Resource Group (az resource list)
00:13:18 Publicação: visão geral e atenção aos segredos
00:14:03 Enviando app settings (Resend/Alpha Vantage) via CLI
00:16:50 Publicando com func azure functionapp publish
00:17:27 Conferindo no portal do Azure (RG, Function App, Storage, App Insights)
00:19:12 Logs e atualização de CRON; corrigindo agendamento para 08:00
00:20:53 Deploy alternativo pelo VS Code (Deploy to Azure)
00:23:38 Limpando tudo com az group delete (alertas e boas práticas)
00:24:49 Nota: envio automatizado de settings e encerramento da exclusão

Links

Azurite (Storage local)

https://github.com/Azure/Azurite

Azure Functions Core Tools

https://learn.microsoft.com/azure/azure-functions/functions-run-local

Timer trigger (cron)

https://learn.microsoft.com/azure/azure-functions/functions-bindings-timer

Alpha Vantage

https://www.alphavantage.co/

Portal Azure

https://portal.azure.com/

Preços Azure Functions

https://azure.microsoft.com/pt-pt/pricing/details/functions/#pricing

Resend Github

https://github.com/resend/resend-dotnet/

Resend Nuget

https://www.nuget.org/packages/Resend

Portal Resend

https://resend.com

Instalar o AZ CLI

https://learn.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

Email temporário

https://temp-mail.org/pt/

Comandos usados

az login

# criar o resource group...
az group create --name alpha-quote-rg --location eastus

# criar o storage account
az storage account create --name alphaquotestorage --location eastus --resource-group alpha-quote-rg --sku Standard_LRS

# criar a function app
az functionapp create --name alphaquotefuncapp --resource-group alpha-quote-rg --storage-account alphaquotestorage --consumption-plan-location eastus --runtime dotnet --functions-version 4 --os-type Windows

# testar se foi criado
az functionapp list --resource-group alpha-quote-rg --output table

# publicar a functionapp...
func azure functionapp publish alphaquotefuncapp

# publicar app settings...
az functionapp config appsettings set --name alphaquotefuncapp --resource-group alpha-quote-rg --settings "RESEND_API_KEY=seu_valor_aqui" "ALPHA_VANTAGE_API_KEY=seu_valor_aqui"

# deletar tudo o que foi criado...
az group delete --name alpha-quote-rg

# listar e exibir recursos
az resource list --resource-group alpha-quote-rg --output table
az resource show --name <nome> --resource-group alpha-quote-rg


Outros assuntos relacionados