Partage via


Activer la mise en file d’attente de lettres mortes à l’expiration du message pour les files d’attente et les abonnements Azure Service Bus

Les files d’attente et les abonnements aux rubriques Azure Service Bus fournissent une sous-file d’attente secondaire, appelée file d’attente de lettres mortes. La file d’attente de lettres mortes n’a pas besoin d’être explicitement créée et ne peut pas être supprimée ni gérée indépendamment de l’entité principale. L’objectif de la file d’attente de lettres mortes est de conserver les messages qui ne peuvent pas être remis aux destinataires ou les messages qui n’ont pas pu être traités. Pour en savoir plus, consultez Vue d’ensemble des files d’attente de lettres mortes Service Bus. Cet article vous montre différentes façons d’activer la mise en file d’attente de lettres mortes pour les files d’attente et les abonnements de Service Bus.

En passant par le portail Azure

Lors de la création d’une file d’attente ou d’un abonnement à une rubrique dans le portail Azure, sélectionnez Activer la mise en file d’attente de lettres mortes à l’expiration du message comme indiqué dans les exemples suivants.

Créer une file d’attente avec mise en file d’attente de lettres mortes

Enable dead lettering at the time of the queue creation

Créer un abonnement avec mise en file d’attente de lettres mortes

Enable dead lettering at the time of the subscription creation

Mettre à jour le paramètre de mise en file d’attente de lettres mortes à l’expiration du message pour une file d’attente existante

Dans la page Vue d’ensemble de la file d’attente Service Bus, sélectionnez la valeur actuelle pour le paramètre de mise en file d’attente de lettres mortes à l’expiration du message. Dans l’exemple suivant, la valeur actuelle est Désactivé. Vous pouvez activer ou désactiver la mise en file d’attente de lettres mortes à l’expiration du message dans la fenêtre contextuelle.

Enable dead-lettering on message expiration for an existing queue

Mettre à jour le paramètre de mise en file d’attente de lettres mortes à l’expiration du message pour un abonnement existant

Dans la page Vue d’ensemble de l’abonnement Service Bus, sélectionnez la valeur actuelle pour le paramètre de mise en file d’attente de lettres mortes à l’expiration du message. Dans l’exemple suivant, la valeur actuelle est Désactivé. Vous pouvez activer ou désactiver la mise en file d’attente de lettres mortes à l’expiration du message dans la fenêtre contextuelle.

Enable dead-lettering on message expiration for an existing subscription

Utilisation de l’interface de ligne de commande Azure

Pour créer une file d’attente avec mise en file d’attente de lettres mortes à l’expiration du message, utilisez la commande az servicebus queue create avec --enable-dead-lettering-on-message-expiration défini sur true.

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

Pour activer le paramètre de mise en file d’attente de lettres mortes à l’expiration du message dans une file d’attente existante, utilisez la commande az servicebus queue update avec --enable-dead-lettering-on-message-expiration défini sur true.

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

Pour créer un abonnement à une rubrique avec mise en file d’attente de lettres mortes à l’expiration du message, utilisez la commande az servicebus topic subscription create avec --enable-dead-lettering-on-message-expiration défini sur true.

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

Pour activer le paramètre de mise en file d’attente de lettres mortes à l’expiration du message dans un abonnement à une rubrique, utilisez la commande az servicebus topic subscription update avec --enable-dead-lettering-on-message-expiration défini sur true.

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

Notes

Si vous spécifiez une file d’attente ou une rubrique à l’aide du paramètre --forward-dead-lettered-messages-to, Event Grid transfère automatiquement les messages en lettres mortes vers cette file d’attente ou cette rubrique. Voici un exemple : 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.

Utilisation de Microsoft Azure PowerShell

Pour créer une file d’attente avec mise en file d’attente de lettres mortes à l’expiration du message, utilisez la commande New-AzServiceBusQueue avec -DeadLetteringOnMessageExpiration défini sur $True.

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

Pour activer le paramètre de mise en file d’attente de lettres mortes à l’expiration du message dans une file d’attente existante, utilisez la commande Set-AzServiceBusQueue comme indiqué dans l’exemple suivant.

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

$queue.DeadLetteringOnMessageExpiration=$True

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

Pour créer un abonnement à une rubrique avec mise en file d’attente de lettres mortes à l’expiration du message, utilisez la commande New-AzServiceBusSubscription avec -DeadLetteringOnMessageExpiration défini sur $True.

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

Pour activer le paramètre de mise en file d’attente de lettres mortes à l’expiration du message dans un abonnement existant, consultez l’exemple suivant.

$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 

Notes

Si vous spécifiez une file d’attente ou une rubrique à l’aide du paramètre -ForwardDeadLetteredMessagesTo, Event Grid transfère automatiquement les messages en lettres mortes vers cette file d’attente ou cette rubrique.

Utilisation d’un modèle Azure Resource Manager

Pour créer une file d’attente avec mise en file d’attente de lettres mortes à l’expiration du message, définissez deadLetteringOnMessageExpiration dans la section Propriétés de la file d’attente sur true. Pour plus d’informations, consultez la documentation de référence sur les modèles de files d’attente/espaces de noms 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
          }
        }
      ]
    }
  ]
}

Pour créer un abonnement à une rubrique avec mise en file d’attente de lettres mortes à l’expiration du message, définissez deadLetteringOnMessageExpiration dans la section Propriétés de la file d’attente sur true. Pour plus d’informations, consultez Modèle de référence 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
              }
            }
          ]
        }
      ]
    }
  ]
}

Notes

Si vous spécifiez une file d’attente ou une rubrique pour la propriété forwardDeadLetteredMessagesTo, Event Grid transfère automatiquement les messages en lettres mortes vers cette file d’attente ou cette rubrique.

Étapes suivantes

Essayez les exemples dans le langage de votre choix pour explorer les fonctionnalités d’Azure Service Bus.

Recherchez des exemples pour les anciennes bibliothèques clientes .NET et Java ci-dessous :

Le 30 septembre 2026, nous retirerons les bibliothèques WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus et com.microsoft.azure.servicebus du kit de développement logiciel (SDK) Azure Service Bus, qui ne sont pas conformes aux directives du kit de développement logiciel (SDK) Azure. Nous mettrons également fin à la prise en charge du protocole SBMP. Vous ne pourrez donc plus utiliser ce protocole après le 30 septembre 2026. Migrez vers les dernières bibliothèques du kit de développement logiciel (SDK) Azure, qui offre des correctifs de sécurité critiques et des fonctionnalités améliorées, avant cette date.

Bien que les anciennes bibliothèques puissent toujours être utilisées au-delà du 30 septembre 2026, elles ne seront plus prises en charge officiellement et mises à jour par Microsoft. Pour plus d’informations, consultez l’annonce concernant l’arrêt de la prise en charge.