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 upNew to Pulumi?
Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.
Sign upThank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.