Condividi tramite


Abilitare messaggi non recapitabili alla scadenza dei messaggi per le code e le sottoscrizioni di bus di servizio di Azure

bus di servizio di Azure code e sottoscrizioni per gli argomenti forniscono una coda secondaria secondaria, denominata coda di messaggi non recapitabili (DLQ). Non è necessario creare in modo esplicito la coda di messaggi non recapitabili, che non può essere eliminata né altrimenti gestita indipendentemente dall'entità principale. Lo scopo della coda dei messaggi non recapitabili è conservare i messaggi che non possono essere recapitati ai ricevitori o che non possono essere elaborati. Per altre informazioni, vedere Panoramica di bus di servizio code di messaggi non recapitabili. Questo articolo illustra diversi modi per abilitare l'inserimento di messaggi non recapitabili per bus di servizio code e sottoscrizioni.

Con il portale di Azure

Quando si crea una coda o una sottoscrizione per un argomento nel portale di Azure, selezionare Abilita messaggi non recapitabili alla scadenza del messaggio, come illustrato negli esempi seguenti.

Creare una coda con messaggi non recapitabili abilitati

Abilitare l'inserimento di messaggi non recapitabili al momento della creazione della coda

Creare una sottoscrizione con messaggi non recapitabili abilitati

Abilitare l'inserimento di messaggi non recapitabili al momento della creazione della sottoscrizione

Aggiornare l'impostazione di messaggi non recapitabili alla scadenza del messaggio per una coda esistente

Nella pagina Panoramica per la coda bus di servizio selezionare il valore corrente per l'impostazione Messaggi non recapitabili alla scadenza del messaggio. Nell'esempio seguente il valore corrente è Disabled. È possibile abilitare o disabilitare i messaggi non recapitabili alla scadenza del messaggio nella finestra popup.

Abilitare i messaggi non recapitabili alla scadenza del messaggio per una coda esistente

Aggiornare l'impostazione di messaggi non recapitabili alla scadenza del messaggio per una sottoscrizione esistente

Nella pagina Panoramica per la sottoscrizione bus di servizio selezionare il valore corrente per l'impostazione Messaggi non recapitabili alla scadenza del messaggio. Nell'esempio seguente il valore corrente è Disabled. È possibile abilitare o disabilitare i messaggi non recapitabili alla scadenza del messaggio nella finestra popup.

Abilitare i messaggi non recapitabili alla scadenza dei messaggi per una sottoscrizione esistente

Utilizzare l'interfaccia della riga di comando di Azure

Per creare una coda con messaggi non recapitabili alla scadenza del messaggio abilitata, usare il az servicebus queue create comando con --enable-dead-lettering-on-message-expiration impostato su true.

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

Per abilitare l'impostazione di messaggi non recapitabili per una coda esistente, usare il az servicebus queue update comando con --enable-dead-lettering-on-message-expiration impostato su true.

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

Per creare una sottoscrizione a un argomento con messaggi non recapitabili alla scadenza del messaggio abilitata, usare il az servicebus topic subscription create comando con --enable-dead-lettering-on-message-expiration impostato su true.

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

Per abilitare l'impostazione di messaggi non recapitabili per una sottoscrizione a un argomento, usare il az servicebus topic subscription update comando con --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 si specifica una coda o un argomento usando il --forward-dead-lettered-messages-to parametro , bus di servizio inoltra automaticamente i messaggi non recapitabili a tale coda o argomento. Ecco un esempio: 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.

Uso di Azure PowerShell

Per creare una coda con messaggi non recapitabili alla scadenza del messaggio abilitata, usare il New-AzServiceBusQueue comando con -DeadLetteringOnMessageExpiration impostato su $True.

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

Per abilitare l'impostazione di messaggi non recapitabili per una coda esistente, usare il Set-AzServiceBusQueue comando come illustrato nell'esempio seguente.

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

$queue.DeadLetteringOnMessageExpiration=$True

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

Per creare una sottoscrizione per un argomento con messaggi non recapitabili alla scadenza del messaggio abilitata, usare il New-AzServiceBusSubscription comando con -DeadLetteringOnMessageExpiration impostato su $True.

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

Per abilitare l'impostazione di messaggi non recapitabili per una sottoscrizione esistente, vedere l'esempio seguente.

$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 si specifica una coda o un argomento usando il -ForwardDeadLetteredMessagesTo parametro , Griglia di eventi inoltra automaticamente i messaggi non recapitabili a tale coda o argomento.

Uso del modello di Azure Resource Manager

Per creare una coda con messaggi non recapitabili alla scadenza del messaggio abilitata, impostare deadLetteringOnMessageExpiration nella sezione delle proprietà della coda su true. Per altre informazioni, vedere Informazioni di riferimento sui modelli di spazi dei nomi/code 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
          }
        }
      ]
    }
  ]
}

Per creare una sottoscrizione per un argomento con messaggi non recapitabili alla scadenza del messaggio abilitata, impostare deadLetteringOnMessageExpiration nella sezione delle proprietà della coda su true. Per altre informazioni, vedere Informazioni di riferimento sul modello Microsoft.ServiceBus namespaces/topics/subscriptions.

{
  "$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 si specifica una coda o un argomento per la forwardDeadLetteredMessagesTo proprietà , Griglia di eventi inoltra automaticamente i messaggi non recapitabili a tale coda o argomento.

Passaggi successivi

Provare gli esempi nel linguaggio preferito per esplorare bus di servizio di Azure funzionalità.

Trovare esempi per le librerie client .NET e Java precedenti:

Il 30 settembre 2026 verranno ritirate le librerie dell'SDK del bus di servizio di Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Verrà terminato anche il supporto del protocollo SBMP, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.

Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio del ritiro del supporto.