1. Answers
  2. Managing Azure Service Bus Dead-Letter Queues

How do I manage Azure Service Bus dead-letter queues?

In this example, we will create an Azure Service Bus namespace, a queue, and configure the dead-lettering on message expiration. Dead-letter queues are used to store messages that cannot be delivered or processed successfully.

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure-native";

// Create an Azure Resource Group
const resourceGroup = new azure.resources.ResourceGroup("resourceGroup", {
    resourceGroupName: "example-rg",
    location: "WestUS",
});

// Create an Azure Service Bus namespace
const namespace = new azure.servicebus.Namespace("exampleNamespace", {
    resourceGroupName: resourceGroup.name,
    namespaceName: "example-namespace",
    location: resourceGroup.location,
    sku: {
        name: "Standard",
        tier: "Standard",
    },
});

// Create a Service Bus queue with dead-lettering enabled
const queue = new azure.servicebus.Queue("exampleQueue", {
    resourceGroupName: resourceGroup.name,
    namespaceName: namespace.name,
    queueName: "example-queue",
    deadLetteringOnMessageExpiration: true,
    maxDeliveryCount: 10,
    defaultMessageTimeToLive: "P7D", // 7 days
    lockDuration: "PT5M", // 5 minutes
    autoDeleteOnIdle: "P30D", // 30 days
});

export const namespaceId = namespace.id;
export const queueId = queue.id;

Key Points

  • Resource Group: A container that holds related resources for an Azure solution.
  • Service Bus Namespace: A container for all messaging components.
  • Service Bus Queue: A queue within the namespace where messages are sent.
  • Dead-Lettering: Configuration to handle messages that cannot be delivered or processed.

Summary

In this example, we created a resource group, a Service Bus namespace, and a queue with dead-lettering enabled using Pulumi. This setup ensures that messages that cannot be processed are moved to a dead-letter queue for further investigation.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up