azure-eventhub-dotnet
Faz seu agente trabalhar com o Azure Event Hubs usando .NET. Ajuda a gerenciar fluxos de dados em tempo real e a coletar muitos eventos.
O que ela faz
Este código permite que outros programas enviem e recebam grandes volumes de dados em tempo real através do serviço Azure Event Hubs. Ele é como um cano de alta velocidade para informações.
Quando usar
- ✓Quando você precisa enviar muitos dados rapidamente para um serviço.
- ✓Quando você precisa que vários sistemas recebam informações ao mesmo tempo.
- ✓Para monitorar e processar fluxos contínuos de dados.
Exemplo do que pedir para a IA
“Envie 1000 mensagens de 'Olá Mundo' para o Event Hub chamado 'meu-hub'.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O código se conecta ao Azure Event Hubs e usa diferentes 'clientes' para enviar ou receber dados. Para receber dados de forma confiável em produção, ele usa um 'processador' que salva o progresso para não perder nada.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-eventhub-dotnetOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-eventhub-dotnet/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Azure.Messaging.EventHubs (.NET)
SDK de streaming de eventos de alta vazão para enviar e receber eventos via Azure Event Hubs.
Instalação
# Core package (sending and simple receiving)
dotnet add package Azure.Messaging.EventHubs
# Processor package (production receiving with checkpointing)
dotnet add package Azure.Messaging.EventHubs.Processor
# Authentication
dotnet add package Azure.Identity
# For checkpointing (required by EventProcessorClient)
dotnet add package Azure.Storage.Blobs
Versões Atuais: Azure.Messaging.EventHubs v5.12.2, Azure.Messaging.EventHubs.Processor v5.12.2
Variáveis de Ambiente
EVENTHUB_FULLY_QUALIFIED_NAMESPACE=<namespace>.servicebus.windows.net
EVENTHUB_NAME=<event-hub-name>
# For checkpointing (EventProcessorClient)
BLOB_STORAGE_CONNECTION_STRING=<storage-connection-string>
BLOB_CONTAINER_NAME=<checkpoint-container>
# Alternative: Connection string auth (not recommended for production)
EVENTHUB_CONNECTION_STRING=Endpoint=sb://<namespace>.servicebus.windows.net/;SharedAccessKeyName=...
Autenticação
using Azure.Identity;
using Azure.Messaging.EventHubs;
using Azure.Messaging.EventHubs.Producer;
// Always use DefaultAzureCredential for production
var credential = new DefaultAzureCredential();
var fullyQualifiedNamespace = Environment.GetEnvironmentVariable("EVENTHUB_FULLY_QUALIFIED_NAMESPACE");
var eventHubName = Environment.GetEnvironmentVariable("EVENTHUB_NAME");
var producer = new EventHubProducerClient(
fullyQualifiedNamespace,
eventHubName,
credential);
Funções RBAC Necessárias:
- Envio:
Azure Event Hubs Data Sender - Recebimento:
Azure Event Hubs Data Receiver - Ambos:
Azure Event Hubs Data Owner
Tipos de Cliente
| Cliente | Propósito | Quando Usar |
|---|---|---|
EventHubProducerClient |
Enviar eventos imediatamente em lotes | Envio em tempo real, controle total sobre o loteamento |
EventHubBufferedProducerClient |
Loteamento automático com envio em segundo plano | Cenários de alto volume, "dispare e esqueça" |
EventHubConsumerClient |
Leitura simples de eventos | Apenas para prototipagem, NÃO para produção |
EventProcessorClient |
Processamento de eventos em produção | Sempre use este para receber em produção |
Fluxo de Trabalho Principal
1. Enviar Eventos (Lote)
using Azure.Identity;
using Azure.Messaging.EventHubs;
using Azure.Messaging.EventHubs.Producer;
await using var producer = new EventHubProducerClient(
fullyQualifiedNamespace,
eventHubName,
new DefaultAzureCredential());
// Create a batch (respects size limits automatically)
using EventDataBatch batch = await producer.CreateBatchAsync();
// Add events to batch
var events = new[]
{
new EventData(BinaryData.FromString("{\"id\": 1, \"message\": \"Hello\"}")),
new EventData(BinaryData.FromString("{\"id\": 2, \"message\": \"World\"}"))
};
foreach (var eventData in events)
{
if (!batch.TryAdd(eventData))
{
// Batch is full - send it and create a new one
await producer.SendAsync(batch);
batch = await producer.CreateBatchAsync();
if (!batch.TryAdd(eventData))
{
throw new Exception("Event too large for empty batch");
}
}
}
// Send remaining events
if (batch.Count > 0)
{
await producer.SendAsync(batch);
}
2. Enviar Eventos (Bufferizado - Alto Volume)
using Azure.Messaging.EventHubs.Producer;
var options = new EventHubBufferedProducerClientOptions
{
MaximumWaitTime = TimeSpan.FromSeconds(1)
};
await using var producer = new EventHubBufferedProducerClient(
fullyQualifiedNamespace,
eventHubName,
new DefaultAzureCredential(),
options);
// Handle send success/failure
producer.SendEventBatchSucceededAsync += args =>
{
Console.WriteLine($"Batch sent: {args.EventBatch.Count} events");
return Task.CompletedTask;
};
producer.SendEventBatchFailedAsync += args =>
{
Console.WriteLine($"Batch failed: {args.Exception.Message}");
return Task.CompletedTask;
};
// Enqueue events (sent automatically in background)
for (int i = 0; i < 1000; i++)
{
await producer.EnqueueEventAsync(new EventData($"Event {i}"));
}
// Flush remaining events before disposing
await producer.FlushAsync();
3. Receber Eventos (Produção - EventProcessorClient)
using Azure.Identity;
using Azure.Messaging.EventHubs;
using Azure.Messaging.EventHubs.Consumer;
…
Perguntas frequentes
O que são 'Event Hubs'?
São um serviço na nuvem da Microsoft (Azure) que funciona como um grande coletor e distribuidor de eventos ou mensagens, capaz de lidar com um volume enorme de dados.
Qual a diferença entre `EventHubProducerClient` e `EventHubBufferedProducerClient`?
O `EventHubProducerClient` envia os dados assim que você manda, enquanto o `EventHubBufferedProducerClient` junta os dados em pacotes e os envia em segundo plano, sendo mais eficiente para grandes volumes.
Por que usar `EventProcessorClient` para receber dados em produção?
Ele é mais robusto e gerencia o recebimento de dados de forma mais segura, salvando o ponto onde parou (checkpointing) para garantir que nenhum dado seja perdido caso o programa precise reiniciar.
Detalhes
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2313
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC