Azure Service Bus
Absolutely! Here's a great starting structure for a GitBook page explaining your Azure Service Bus integration.
Azure Service Bus Integration
This guide explains how to configure and use Azure Service Bus in your messaging-based application using
@nestjstools/messaging
.
📦 Installation
Make sure you’ve installed the following dependencies:
npm install @nestjstools/messaging @nestjstools/messaging-azure-service-bus-extension
or
yarn add @nestjstools/messaging @nestjstools/messaging-azure-service-bus-extension
🛠️ Channel Configuration
Basic Setup queue
channels: [
new AzureServiceBusChannelConfig({
name: 'azure-channel',
connectionString: 'Endpoint=sb://your-namespace.servicebus.windows.net/;SharedAccessKeyName=...;',
queue: 'your-queue-name',
autoCreate: false, // Requires admin permission
enableConsumer: true,
}),
],
Topic/Subscription Example
channels: [
new AzureServiceBusChannelConfig({
name: 'azure-pubsub-channel',
connectionString: 'Endpoint=sb://your-namespace.servicebus.windows.net/;SharedAccessKeyName=...;',
topic: 'your-topic',
subscription: 'your-subscription',
mode: Mode.TOPIC,
autoCreate: true,
enableConsumer: true,
}),
],
⚙️ Config Options
name
Internal channel name
—
connectionString
Azure Service Bus connection string
—
queue
Queue name (required for Mode.QUEUE
)
—
topic
Topic name (required for Mode.TOPIC
)
—
subscription
Subscription name (required for Mode.TOPIC
)
—
mode
'queue'
or 'topic'
'queue'
autoCreate
Auto-create queue/topic/subscription (requires admin permissions)
false
enableConsumer
Enable message receiving
true
📤 Dispatching a Message
import { Controller, Get } from '@nestjs/common';
import { CreateUser } from './application/command/create-user';
import { IMessageBus, MessageBus, RoutingMessage } from '@nestjstools/messaging';
@Controller()
export class AppController {
constructor(
@MessageBus('azure.bus') private azureMessageBus: IMessageBus,
) {}
@Get('/azure')
createUser(): string {
this.azureMessageBus.dispatch(
new RoutingMessage(
new CreateUser('John FROM Azure bus'),
'my_app_command.create_user',
),
);
return 'Message sent';
}
}
✅ Tips
autoCreate
works only if the channel hasenableConsumer = true
and the connection string has management permissions.Use
mode: Mode.TOPIC
only when usingtopic
andsubscription
.
Last updated