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

azure-servicebus-dotnet

Permite que seu agente envie e receba mensagens entre diferentes partes de um sistema. É útil para comunicação confiável em aplicações empresariais.

O que ela faz

Este código permite que programas de computador enviem e recebam mensagens de forma confiável. Pense nisso como um sistema de correio avançado para que diferentes partes de um aplicativo possam se comunicar.

Quando usar

  • ✓Quando você precisa garantir que uma mensagem não se perca.
  • ✓Para organizar a comunicação entre diferentes partes de um sistema.
  • ✓Quando um programa precisa enviar dados para outro de forma segura.

Exemplo do que pedir para a IA

“Envie uma mensagem 'Olá Mundo' para a fila 'minha-fila'.”

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-servicebus-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-servicebus-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 a um serviço de mensagens chamado Azure Service Bus. Ele permite criar 'remetentes' para enviar mensagens e 'receptores' para recebê-las, garantindo que tudo chegue ao destino.

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-servicebus-dotnet

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-servicebus-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.ServiceBus (.NET)

SDK de mensagens corporativas para entrega confiável de mensagens com filas, tópicos, assinaturas e sessões.

Instalação

dotnet add package Azure.Messaging.ServiceBus
dotnet add package Azure.Identity

Versão Atual: v7.20.1 (estável)

Variáveis de Ambiente

AZURE_SERVICEBUS_FULLY_QUALIFIED_NAMESPACE=<namespace>.servicebus.windows.net
# Or connection string (less secure)
AZURE_SERVICEBUS_CONNECTION_STRING=Endpoint=sb://...

Autenticação

Microsoft Entra ID (Recomendado)

using Azure.Identity;
using Azure.Messaging.ServiceBus;

string fullyQualifiedNamespace = "<namespace>.servicebus.windows.net";
await using ServiceBusClient client = new(fullyQualifiedNamespace, new DefaultAzureCredential());

String de Conexão

string connectionString = "<connection_string>";
await using ServiceBusClient client = new(connectionString);

Injeção de Dependência do ASP.NET Core

services.AddAzureClients(builder =>
{
    builder.AddServiceBusClientWithNamespace("<namespace>.servicebus.windows.net");
    builder.UseCredential(new DefaultAzureCredential());
});

Hierarquia de Clientes

ServiceBusClient
├── CreateSender(queueOrTopicName)      → ServiceBusSender
├── CreateReceiver(queueName)           → ServiceBusReceiver
├── CreateReceiver(topicName, subName)  → ServiceBusReceiver
├── AcceptNextSessionAsync(queueName)   → ServiceBusSessionReceiver
├── CreateProcessor(queueName)          → ServiceBusProcessor
└── CreateSessionProcessor(queueName)   → ServiceBusSessionProcessor

ServiceBusAdministrationClient (separate client for CRUD)

Fluxos de Trabalho Principais

1. Enviar Mensagens

await using ServiceBusClient client = new(fullyQualifiedNamespace, new DefaultAzureCredential());
ServiceBusSender sender = client.CreateSender("my-queue");

// Single message
ServiceBusMessage message = new("Hello world!");
await sender.SendMessageAsync(message);

// Safe batching (recommended)
using ServiceBusMessageBatch batch = await sender.CreateMessageBatchAsync();
if (batch.TryAddMessage(new ServiceBusMessage("Message 1")))
{
    // Message added successfully
}
if (batch.TryAddMessage(new ServiceBusMessage("Message 2")))
{
    // Message added successfully
}
await sender.SendMessagesAsync(batch);

2. Receber Mensagens

ServiceBusReceiver receiver = client.CreateReceiver("my-queue");

// Single message
ServiceBusReceivedMessage message = await receiver.ReceiveMessageAsync();
string body = message.Body.ToString();
Console.WriteLine(body);

// Complete the message (removes from queue)
await receiver.CompleteMessageAsync(message);

// Batch receive
IReadOnlyList<ServiceBusReceivedMessage> messages = await receiver.ReceiveMessagesAsync(maxMessages: 10);
foreach (var msg in messages)
{
    Console.WriteLine(msg.Body.ToString());
    await receiver.CompleteMessageAsync(msg);
}

3. Liquidação de Mensagens

// Complete - removes message from queue
await receiver.CompleteMessageAsync(message);

// Abandon - releases lock, message can be received again
await receiver.AbandonMessageAsync(message);

// Defer - prevents normal receive, use ReceiveDeferredMessageAsync
await receiver.DeferMessageAsync(message);

// Dead Letter - moves to dead letter subqueue
await receiver.DeadLetterMessageAsync(message, "InvalidFormat", "Message body was not valid JSON");

4. Processamento em Segundo Plano com Processador

ServiceBusProcessor processor = client.CreateProcessor("my-queue", new ServiceBusProcessorOptions
{
    AutoCompleteMessages = false,
    MaxConcurrentCalls = 2
});

processor.ProcessMessageAsync += async (args) =>
{
    try
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body}");
        await args.CompleteMessageAsync(args.Message);
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error processing: {ex.Message}");
        await args.AbandonMessageAsync(args.Message);
    }
};

processor.ProcessErrorAsync += (args) =>
{
    Console.WriteLine($"Error source: {args.ErrorSource}");
    Console.WriteLine($"Entity: {args.EntityPath}");
    Console.WriteLine($"Exception: {args.Exception}");
    return Task.CompletedTask;
};

await processor.StartProcessingAsync();
// ... application runs
await processor.StopProcessingAsync();

5. Sessões (Processamento Ordenado)

// Enviar mensagem de sessão

…
Perguntas frequentes

O que são filas e tópicos?

Filas são como caixas de correio onde as mensagens são armazenadas até serem recebidas. Tópicos são como quadros de avisos onde as mensagens são transmitidas para vários assinantes.

Como as mensagens são garantidas?

O sistema garante que as mensagens sejam entregues. Se um receptor falhar, a mensagem pode ser reenviada ou colocada em uma 'fila de mensagens mortas' para análise.

O que é 'processamento em segundo plano'?

É uma forma de o programa receber e processar mensagens continuamente sem precisar ser solicitado a cada vez, tornando a comunicação mais eficiente.

Detalhes

Descrição original do autor

Azure Service Bus SDK for .NET. Enterprise messaging with queues, topics, subscriptions, and sessions.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas