Partilhar via


Habilitar letras mortas na expiração de mensagens para filas e assinaturas do Barramento de Serviço do Azure

As filas e assinaturas do Barramento de Serviço do Azure para tópicos fornecem uma subfila secundária, chamada de fila de letras mortas (DLQ). A fila de mensagens não entregues não precisa de ser criada explicitamente e não pode ser eliminada nem gerida independentemente da entidade principal. O objetivo da fila de mensagens mortas é armazenar mensagens que não podem ser entregues a nenhum destinatário ou mensagens que não podem ser processadas. Para obter mais informações, consulte Visão geral das filas de mensagens mortas do Service Bus. Este artigo mostra diferentes maneiras de habilitar letras inativas para filas e assinaturas do Service Bus.

Através do portal do Azure

Ao criar uma fila ou uma assinatura para um tópico no portal do Azure, selecione Habilitar letras mortas na expiração da mensagem, conforme mostrado nos exemplos a seguir.

Criar uma fila com letras mortas ativadas

Habilitar letras inativas no momento da criação da fila

Criar uma subscrição com letras inativas ativadas

Ativar letras inativas no momento da criação da subscrição

Atualizar a configuração de letra inativa na expiração da mensagem para uma fila existente

Na página Visão geral da fila do Barramento de Serviço, selecione o valor atual para a configuração Letras mortas na expiração da mensagem. No exemplo a seguir, o valor atual é Disabled. Você pode ativar ou desativar letras mortas na expiração da mensagem na janela pop-up.

Habilitar letras mortas na expiração de mensagens para uma fila existente

Atualizar as letras mortas na configuração de expiração da mensagem para uma assinatura existente

Na página Visão geral da sua assinatura do Service Bus, selecione o valor atual para a configuração Letras inativas na expiração da mensagem. No exemplo a seguir, o valor atual é Disabled. Você pode ativar ou desativar letras mortas na expiração da mensagem na janela pop-up.

Habilitar letras mortas na expiração de mensagens para uma assinatura existente

Utilizar a CLI do Azure

Para criar uma fila com letras inativas na expiração da mensagem habilitada, use o az servicebus queue create comando com --enable-dead-lettering-on-message-expiration set como true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Para habilitar a configuração de letras mortas na expiração da mensagem para uma fila existente, use o az servicebus queue update comando com --enable-dead-lettering-on-message-expiration set como true.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Para criar uma assinatura para um tópico com letras mortas na expiração da mensagem habilitada, use o az servicebus topic subscription create comando com --enable-dead-lettering-on-message-expiration set to true.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Para habilitar a configuração de letras mortas na expiração da mensagem para uma assinatura de um tópico, use o az servicebus topic subscription update comando com --enable-dead-lettering-on-message-expiration set true.

az servicebus topic subscription update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Nota

Se você especificar uma fila ou tópico usando o parâmetro, o --forward-dead-lettered-messages-to Service Bus encaminhará automaticamente mensagens com letras mortas para essa fila ou tópico. Eis um exemplo: 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.

Utilizar o Azure PowerShell

Para criar uma fila com letras inativas na expiração da mensagem habilitada, use o New-AzServiceBusQueue comando com -DeadLetteringOnMessageExpiration set como $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -DeadLetteringOnMessageExpiration $True

Para habilitar a configuração de letras inativas na expiração da mensagem para uma fila existente, use o Set-AzServiceBusQueue comando conforme mostrado no exemplo a seguir.

$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue 

$queue.DeadLetteringOnMessageExpiration=$True

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -QueueObj $queue

Para criar uma assinatura para um tópico com letras mortas na expiração da mensagem habilitada, use o New-AzServiceBusSubscription comando com -DeadLetteringOnMessageExpiration definido como $True.

New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysubscription `
    -DeadLetteringOnMessageExpiration $True

Para habilitar a configuração de letras inativas na expiração da mensagem para uma assinatura existente, consulte o exemplo a seguir.

$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 

Nota

Se você especificar uma fila ou tópico usando o parâmetro, a -ForwardDeadLetteredMessagesTo Grade de Eventos encaminhará automaticamente mensagens com letras mortas para essa fila ou tópico.

Com o modelo do Azure Resource Manager

Para criar uma fila com letras inativas na expiração da mensagem habilitada, defina deadLetteringOnMessageExpiration na seção de propriedades da fila como true. Para obter mais informações, consulte Referência de modelo de namespaces/filas do 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
          }
        }
      ]
    }
  ]
}

Para criar uma assinatura para um tópico com letras inativas na expiração da mensagem habilitada, defina deadLetteringOnMessageExpiration na seção de propriedades da fila como true. Para obter mais informações, consulte Microsoft.ServiceBus namespaces/topics/subscriptions template reference.

{
  "$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
              }
            }
          ]
        }
      ]
    }
  ]
}

Nota

Se você especificar uma fila ou tópico para a propriedade, a forwardDeadLetteredMessagesTo Grade de Eventos encaminhará automaticamente mensagens com letras mortas para essa fila ou tópico.

Próximos passos

Experimente os exemplos no idioma de sua escolha para explorar os recursos do Barramento de Serviço do Azure.

Encontre exemplos para as bibliotecas de cliente .NET e Java mais antigas:

Em 30 de setembro de 2026, desativaremos as bibliotecas do SDK do Barramento de Serviço do Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, que não estão em conformidade com as diretrizes do SDK do Azure. Também encerraremos o suporte ao protocolo SBMP, para que você não possa mais usar esse protocolo após 30 de setembro de 2026. Migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e recursos aprimorados, antes dessa data.

Embora as bibliotecas mais antigas ainda possam ser usadas após 30 de setembro de 2026, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, consulte o anúncio de aposentadoria de suporte.