Berichtensessies inschakelen voor een Azure Service Bus-wachtrij of een abonnement

Azure Service Bus-sessies maken gezamenlijke en geordende verwerking van niet-gebonden reeksen gerelateerde berichten mogelijk. Sessies kunnen worden gebruikt in first in, first out (FIFO) en request-response patronen. Zie Berichtensessies voor meer informatie. In dit artikel ziet u verschillende manieren om sessies in te schakelen voor een Service Bus-wachtrij of -abonnement.

Belangrijk

  • De basislaag van Service Bus biedt geen ondersteuning voor sessies. De standard- en premium-lagen bieden ondersteuning voor sessies. Zie Service Bus-prijzen voor verschillen tussen deze lagen.
  • U kunt berichtsessies niet in- of uitschakelen nadat de wachtrij of het abonnement is gemaakt. U kunt dit alleen doen op het moment dat u de wachtrij of het abonnement maakt.

Azure-portal gebruiken

Wanneer u een wachtrij maakt in Azure Portal, selecteert u Sessies inschakelen , zoals wordt weergegeven in de volgende afbeelding.

Sessie inschakelen op het moment dat de wachtrij is gemaakt

Wanneer u een abonnement maakt voor een onderwerp in Azure Portal, selecteert u Sessies inschakelen , zoals wordt weergegeven in de volgende afbeelding.

Sessie inschakelen op het moment dat het abonnement is gemaakt

Azure CLI gebruiken

Als u een wachtrij wilt maken waarvoor berichtsessies zijn ingeschakeld, gebruikt u de az servicebus queue create opdracht en stelt u --enable-session in op true.

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

Als u een abonnement wilt maken voor een onderwerp met ingeschakelde berichtsessies, gebruikt u de opdracht met az servicebus topic subscription create ingesteld op --enable-session.

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

Azure PowerShell gebruiken

Als u een wachtrij wilt maken waarvoor berichtsessies zijn ingeschakeld, gebruikt u de New-AzServiceBusQueue opdracht en stelt u -RequiresSession in op $True.

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

Als u een abonnement wilt maken voor een onderwerp met ingeschakelde berichtsessies, gebruikt u de opdracht met New-AzServiceBusSubscription ingesteld op -RequiresSession.

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

Een sjabloon gebruiken

Als u een wachtrij wilt maken waarvoor berichtsessies zijn ingeschakeld, stelt u deze in requiresSessiontrue de sectie Wachtrijeigenschappen in. Zie de sjabloonreferenties voor Microsoft.ServiceBus-naamruimten/wachtrijen voor meer informatie.

@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
    }
  }
}

Als u een abonnement wilt maken voor een onderwerp waarvoor berichtsessies zijn ingeschakeld, stelt u dit requiresSessiontrue in de sectie met abonnementseigenschappen in. Zie Microsoft.ServiceBus-naamruimten/onderwerpen/abonnementensjabloonreferenties voor meer informatie.

@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
      }
    }
  }
}

Volgende stappen

Probeer de voorbeelden in de taal van uw keuze om Azure Service Bus-functies te verkennen.