Azure Service Bus 큐와 구독에서 메시지 만료 시 배달 못 한 편지 기능 사용
Azure Service Bus 큐와 토픽 구독은 DLQ(배달 못 한 편지 큐)라는 보조 하위 큐를 제공합니다. 배달 못 한 편지 큐는 명시적으로 만들 필요가 없으며 주 엔터티와 독립적으로 삭제하거나 관리할 수 없습니다. 배달 못한 편지 큐의 목적은 수신기에 배달할 수 없는 메시지 또는 처리할 수 없는 메시지를 보관하는 것입니다. 자세한 정보는 Service Bus 배달 못 한 편지 큐의 개요를 참조하세요. 이 문서에서는 Service Bus 큐와 구독에서 배달 못 한 편지 기능을 사용하는 다양한 방법을 보여 줍니다.
Azure Portal 사용
Azure Portal 토픽에 대한 큐 또는 구독을 만들 때 다음 예제와 같이 메시지 만료 시 배달 못 한 편지 기능 사용을 선택합니다.
배달 못 한 편지 기능을 사용하여 큐 만들기
배달 못 한 편지 기능을 사용하여 구독 만들기
기존 큐에 대한 메시지 만료 설정에서 배달 못 한 편지 기능 업데이트
Service Bus 큐에 대한 개요 페이지에서 메시지 만료 설정의 배달 못 한 편지 기능의 현재 값을 선택합니다. 다음 예에서 현재 값은 사용 안 함입니다. 팝업 창에서 메시지 만료 시 배달 못 한 편지 기능을 사용하거나 사용하지 않도록 설정할 수 있습니다.
기존 구독에 대한 메시지 만료 설정에서 배달 못 한 편지 기능 업데이트
Service Bus 구독의 개요 페이지에서 메시지 만료 설정의 배달 못 한 편지 기능의 현재 값을 선택합니다. 다음 예에서 현재 값은 사용 안 함입니다. 팝업 창에서 메시지 만료 시 배달 못 한 편지 기능을 사용하거나 사용하지 않도록 설정할 수 있습니다.
Azure CLI 사용
메시지 만료 시 배달 못 한 편지 기능을 사용하여 큐를 만들려면 --enable-dead-lettering-on-message-expiration
을 true
로 설정한 az servicebus queue create
명령을 사용합니다.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
기존 큐에 대한 메시지 만료 설정에서 배달 못 한 편지 기능을 사용하도록 설정하려면 --enable-dead-lettering-on-message-expiration
을 true
로 설정한 az servicebus queue update
명령을 사용합니다.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
메시지 만료 시 배달 못 한 편지 기능을 사용하는 토픽의 구독을 만들려면 --enable-dead-lettering-on-message-expiration
을 true
로 설정한 az servicebus topic subscription create
명령을 사용합니다.
az servicebus topic subscription create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-dead-lettering-on-message-expiration true
토픽 구독에 대한 메시지 만료 설정에서 배달 못 한 편지 기능을 사용하도록 설정하려면 --enable-dead-lettering-on-message-expiration
을 true
로 설정한 az servicebus topic subscription update
명령을 사용합니다.
az servicebus topic subscription update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-dead-lettering-on-message-expiration true
참고 항목
매개 변수를 사용하여 큐 또는 토픽을 --forward-dead-lettered-messages-to
지정하는 경우 Service Bus는 배달 못한 메시지를 해당 큐 또는 토픽에 자동으로 전달합니다. 예: az servicebus queue create --resource-group mysbusrg --namespace-name mysbusns --name myqueue --enable-dead-lettering-on-message-expiration true --forward-dead-lettered-messages-to myqueue2
.
Azure PowerShell 사용
메시지 만료 시 배달 못 한 편지 기능을 사용하여 큐를 만들려면 -DeadLetteringOnMessageExpiration
을 $True
로 설정한 New-AzServiceBusQueue
명령을 사용합니다.
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-DeadLetteringOnMessageExpiration $True
기존 큐에 대한 메시지 만료 설정에서 배달 못 한 편지 기능을 사용하도록 설정하려면 다음 예제와 같이 Set-AzServiceBusQueue
명령을 사용합니다.
$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queue.DeadLetteringOnMessageExpiration=$True
Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-QueueObj $queue
메시지 만료 시 배달 못 한 편지 기능을 사용하는 토픽에 대한 구독을 만들려면 -DeadLetteringOnMessageExpiration
을 $True
로 설정한 New-AzServiceBusSubscription
명령을 사용합니다.
New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysubscription `
-DeadLetteringOnMessageExpiration $True
기존 구독에 대한 메시지 만료 설정에서 배달 못 한 편지 기능을 사용하도록 설정하려면 다음 예제를 참조하세요.
$subscription=Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysub
$subscription.DeadLetteringOnMessageExpiration=$True
Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-SubscriptionName mysub `
-SubscriptionObj $subscription
참고 항목
-ForwardDeadLetteredMessagesTo
매개 변수를 사용하여 큐 또는 토픽을 지정하는 경우 Event Grid는 배달 못한 메시지를 해당 큐 또는 토픽에 자동으로 전달합니다.
Azure Resource Manager 템플릿 사용
메시지 만료 시 배달 못 한 편지 기능을 사용하여 큐를 만들려면 큐 속성 섹션에서 deadLetteringOnMessageExpiration
를 true
로 설정합니다. 자세한 내용은 Microsoft.ServiceBus namespaces/queues 템플릿 참조를 참조하세요.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "string",
"metadata": {
"description": "Name of the Queue"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.ServiceBus/namespaces",
"apiVersion": "2018-01-01-preview",
"name": "[parameters('serviceBusNamespaceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {},
"resources": [
{
"type": "Queues",
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusQueueName')]",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"deadLetteringOnMessageExpiration": true
}
}
]
}
]
}
메시지 만료 시 배달 못 한 편지 기능을 사용하는 토픽에 대한 구독을 만들려면 큐 속성 섹션에서 deadLetteringOnMessageExpiration
를 true
로 설정합니다. 자세한 정보는 Microsoft.ServiceBus 네임스페이스/토픽/구독 템플릿 참조에서 알아보세요.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"service_BusNamespace_Name": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusTopicName": {
"type": "string",
"metadata": {
"description": "Name of the Topic"
}
},
"serviceBusSubscriptionName": {
"type": "string",
"metadata": {
"description": "Name of the Subscription"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"apiVersion": "2018-01-01-preview",
"name": "[parameters('service_BusNamespace_Name')]",
"type": "Microsoft.ServiceBus/namespaces",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusTopicName')]",
"type": "topics",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces/', parameters('service_BusNamespace_Name'))]"
],
"properties": {
"maxSizeInMegabytes": 1024
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusSubscriptionName')]",
"type": "Subscriptions",
"dependsOn": [
"[parameters('serviceBusTopicName')]"
],
"properties": {
"deadLetteringOnMessageExpiration": true
}
}
]
}
]
}
]
}
참고 항목
forwardDeadLetteredMessagesTo
속성에 대해 큐 또는 토픽을 지정하는 경우 Event Grid는 배달 못한 메시지를 해당 큐 또는 토픽에 자동으로 전달합니다.
다음 단계
선택한 언어로 샘플을 사용하여 Azure Service Bus 기능을 살펴봅니다.
- .NET용 Azure Service Bus 클라이언트 라이브러리 샘플(최신)
- Java용 Azure Service Bus 클라이언트 라이브러리 샘플(최신)
- Python용 Azure Service Bus 클라이언트 라이브러리 샘플
- JavaScript용 Azure Service Bus 클라이언트 라이브러리 샘플
- TypeScript용 Azure Service Bus 클라이언트 라이브러리 샘플
이전 .NET 및 Java 클라이언트 라이브러리에 대한 샘플을 찾습니다.
2026년 9월 30일에 Azure SDK 지침을 따르지 않는 Azure Service Bus SDK 라이브러리 WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus 및 com.microsoft.azure.servicebus를 사용 중지합니다. 또한 SBMP 프로토콜에 대한 지원이 종료되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 마이그레이션에 중요한 보안 업데이트와 개선된 기능을 제공하는 최신 Azure SDK 라이브러리로 마이그레이션합니다.
이전 라이브러리는 2026년 9월 30일 이후에도 계속 사용할 수 있지만 더 이상 Microsoft로부터 공식 지원 및 업데이트를 받을 수 없습니다. 자세한 내용은 사용 중지 공지 지원을 참조하세요.