Activer les sessions de messages pour une file d’attente Azure Service Bus ou un abonnement

Les sessions Azure Service Bus permettent une gestion conjointe et ordonnée des séquences de messages connexes. Les sessions peuvent être utilisées selon les modèles premier entré, premier sorti (FIFO) et demande-réponse. Pour plus d’informations, consultez les sessions de messages. Cet article vous montre différentes façons d’activer des sessions pour une file d’attente ou un abonnement Service Bus.

Important

  • Le niveau de base de Service Bus ne prend pas en charge les sessions. Les niveaux Standard et Premium prennent en charge les sessions. Pour connaître les différences entre ces niveaux, voir Tarification de Service Bus.
  • Vous ne pouvez pas activer ou désactiver les sessions de message après la création de la file d’attente ou de l’abonnement. Vous ne pouvez le faire qu’au moment de la création de la file d’attente ou de l’abonnement.

En passant par le portail Azure

Lors de la création d’une file d’attente dans le portail Azure, sélectionnez Activer les sessions , comme illustré dans l’image suivante.

Activer la session au moment de la création de la file d’attente

Lorsque vous créez un abonnement pour une rubrique dans le portail Azure, sélectionnez Activer les sessions , comme illustré dans l’image suivante.

Activer la session au moment de la création de l’abonnement

Utilisation d’Azure CLI

Pour créer une file d’attente avec des sessions de messages activées, utilisez la commande az servicebus queue create avec --enable-session défini sur true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-session true

Pour créer un abonnement pour un sujet avec des sessions de messages activées, utilisez la commande az servicebus topic subscription create avec la valeur --enable-session définie sur true.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-session true

Utilisation de Microsoft Azure PowerShell

Pour créer une file d’attente avec des sessions de messages activées, utilisez la commande New-AzServiceBusQueue avec -RequiresSession défini sur $True.

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

Pour créer un abonnement pour un sujet avec des sessions de messages activées, utilisez la commande New-AzServiceBusSubscription avec la valeur -RequiresSession définie sur true.

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

Utilisation d’un modèle

Pour créer une file d’attente avec des sessions de messages activées, définissez-la requiresSessiontrue dans la section propriétés de la file d’attente. Pour plus d’informations, consultez la référence du modèle des espaces de noms et des files d'attente Microsoft.ServiceBus.

@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string

@description('Name of the Queue')
param serviceBusQueueName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: serviceBusNamespaceName
  location: location
  sku: {
    name: 'Standard'
  }

  resource queue 'queues' = {
    name: serviceBusQueueName
    properties: {
      requiresSession: true
    }
  }
}

Pour créer un abonnement pour une rubrique avec des sessions de message activées, définissez requiresSession à true dans la section des propriétés de l’abonnement. Pour plus d'informations, consultez la référence de modèle des espaces de noms/sujets/abonnements Microsoft.ServiceBus.

@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string

@description('Name of the Topic')
param serviceBusTopicName string

@description('Name of the Subscription')
param serviceBusSubscriptionName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: serviceBusNamespaceName
  location: location
  sku: {
    name: 'Standard'
  }

  resource topic 'topics' = {
    name: serviceBusTopicName
    properties: {
      maxSizeInMegabytes: 1024
    }

    resource subscription 'subscriptions' = {
      name: serviceBusSubscriptionName
      properties: {
        requiresSession: true
      }
    }
  }
}

Prochaines étapes

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