Включение функции недоставленных сообщений по истечении срока действия для подписок и очередей Служебной шины Azure
Очереди служебной шины Azure и подписки на разделы поддерживают дополнительную очередь, которая называется очередью недоставленных сообщений. Очередь недоставленных сообщений не нужно создавать явным образом. Ее нельзя удалить, ею нельзя управлять отдельно от основной сущности. Очередь недоставленных сообщений предназначена для хранения сообщений, которые невозможно доставить ни одному адресату либо не удалось обработать. Дополнительные сведения см. в статье Обзор очередей недоставленных сообщений служебной шины. В этой статье описаны разные способы настройки функции недоставленных сообщений для очередей и подписок Служебной шины.
При создании очереди или подписки на раздел с помощью портала Azure выберите параметр Enable dead lettering on message expiration (Включить функцию недоставленных сообщений по истечении срока действия).
На странице Обзор для очереди Служебной шины выберите текущее значение параметра Dead lettering (Недоставленные сообщения). В следующем примере он имеет значение Отключено. Во всплывающем окне можно включить или отключить недоставленные сообщения по истечении срока действия.
На странице Обзор для подписки Служебной шины выберите текущее значение параметра Dead lettering (Недоставленные сообщения). В следующем примере он имеет значение Отключено. Во всплывающем окне можно включить или отключить недоставленные сообщения по истечении срока действия.
Чтобы создать очередь с включенной функцией недоставленных сообщений по истечении срока действия, используйте команду az servicebus queue create
со значением true
параметра --enable-dead-lettering-on-message-expiration
.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
Чтобы включить функцию недоставленных сообщений по истечении срока действия для существующей очереди, используйте команду az servicebus queue update
со значением true
параметра --enable-dead-lettering-on-message-expiration
.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
Чтобы создать подписку на раздел с включенной функцией недоставленных сообщений по истечении срока действия, используйте команду az servicebus topic subscription create
со значением true
параметра --enable-dead-lettering-on-message-expiration
.
az servicebus topic subscription create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-dead-lettering-on-message-expiration true
Чтобы включить функцию недоставленных сообщений по истечении срока действия для существующей подписки на раздел, используйте команду az servicebus topic subscription update
со значением true
параметра --enable-dead-lettering-on-message-expiration
.
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
параметра, служебная шина автоматически перенаправит сообщения с недоставленной буквой в эту очередь или раздел. Вот пример: 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
.
Чтобы создать очередь с включенной функцией недоставленных сообщений по истечении срока действия, используйте команду New-AzServiceBusQueue
со значением $True
параметра -DeadLetteringOnMessageExpiration
.
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
Чтобы создать подписку на раздел с включенной функцией недоставленных сообщений по истечении срока действия, используйте команду New-AzServiceBusSubscription
со значением $True
параметра -DeadLetteringOnMessageExpiration
.
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
параметра, сетка событий автоматически перенаправит сообщения с недоставленными буквами в эту очередь или раздел.
Чтобы создать очередь с включенной функцией недоставленных сообщений по истечении срока действия, задайте для параметра deadLetteringOnMessageExpiration
в разделе свойств очереди значение true
. Дополнительные сведения см. в справочнике по шаблонам пространств имен/очередей Microsoft.ServiceBus.
{
"$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
свойства, служба "Сетка событий" автоматически перенаправит сообщения с недоставленными письмами в эту очередь или раздел.
Опробуйте примеры на выбранном языке, чтобы изучить возможности Служебной шины Azure.
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Python
- Примеры для клиентской библиотеки Служебной шины Azure для JavaScript
- Примеры для клиентской библиотеки Служебной шины Azure для TypeScript
Найдите примеры для старых клиентских библиотек .NET и Java:
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (прежние версии)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (прежние версии)
30 сентября 2026 г. мы удалим библиотеки пакета SDK Служебная шина Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus и com.microsoft.azure.servicebus, которые не соответствуют рекомендациям по пакету SDK Azure. Мы также завершим поддержку протокола SBMP, поэтому вы больше не сможете использовать этот протокол после 30 сентября 2026 года. Перейдите в последние библиотеки пакета SDK Azure, которые предлагают критически важные обновления системы безопасности и улучшенные возможности до этой даты.
Хотя старые библиотеки по-прежнему могут использоваться после 30 сентября 2026 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Дополнительные сведения см. в объявлении о выходе на пенсию в службу поддержки.