Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #2313

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-eventhub-dotnet/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-eventhub-dotnet/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-dotnet

Ou 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.md
Conteú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

Descrição original do autor

Azure Event Hubs SDK for .NET.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2313
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas