Włączanie sesji komunikatów dla kolejki usługi Azure Service Bus lub subskrypcji

Sesje usługi Azure Service Bus umożliwiają wspólną i uporządkowaną obsługę niezwiązanych sekwencji powiązanych komunikatów. Sesje mogą być używane w pierwszy na wejściu, pierwszy na wyjściu (FIFO) i wzorce żądanie-odpowiedź. Aby uzyskać więcej informacji, zobacz Sesje komunikatów. W tym artykule przedstawiono różne sposoby włączania sesji dla kolejki lub subskrypcji usługi Service Bus.

Ważne

  • Warstwa Podstawowa usługi Service Bus nie obsługuje sesji. Poziomy Standardowy i Premium obsługują sesje. Aby uzyskać różnice pomiędzy tymi poziomami, zobacz Cennik usługi Service Bus.
  • Nie można włączać ani wyłączać sesji komunikatów po utworzeniu kolejki lub subskrypcji. Można to zrobić tylko w momencie tworzenia kolejki lub subskrypcji.

Korzystanie z witryny Azure Portal

Podczas tworzenia kolejki w witrynie Azure Portal wybierz pozycję Włącz sesje , jak pokazano na poniższej ilustracji.

Włączanie sesji w czasie tworzenia kolejki

Podczas tworzenia subskrypcji tematu w witrynie Azure Portal wybierz pozycję Włącz sesje , jak pokazano na poniższej ilustracji.

Włączanie sesji w momencie tworzenia subskrypcji

Korzystanie z Azure CLI

Aby utworzyć kolejkę z włączonymi sesjami komunikatów, użyj polecenia az servicebus queue create z ustawieniem --enable-session ustawionym na true.

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

Aby utworzyć subskrypcję dla tematu z włączonymi sesjami komunikatów, użyj polecenia az servicebus topic subscription create z ustawioną wartością --enable-sessiontrue.

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

Korzystanie z programu Azure PowerShell

Aby utworzyć kolejkę z włączonymi sesjami komunikatów, użyj polecenia New-AzServiceBusQueue z ustawieniem -RequiresSession ustawionym na $True.

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

Aby utworzyć subskrypcję dla tematu z włączonymi sesjami komunikatów, użyj polecenia New-AzServiceBusSubscription z ustawioną wartością -RequiresSessiontrue.

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

Korzystanie z szablonu

Aby utworzyć kolejkę z włączonymi sesjami komunikatów, ustaw wartość na requiresSessiontrue w sekcji właściwości kolejki. Aby uzyskać więcej informacji, zobacz Dokumentacja szablonu przestrzeni nazw/kolejek 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
    }
  }
}

Aby utworzyć subskrypcję tematu z włączonymi sesjami komunikatów, ustaw wartość na requiresSessiontrue w sekcji właściwości subskrypcji. Aby uzyskać więcej informacji, zobacz Microsoft.ServiceBus namespaces/topics/subscriptions template reference (Dokumentacja szablonu Microsoft.ServiceBus/topics/subscriptions).

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

Dalsze kroki

Wypróbuj przykłady w wybranym języku, aby zapoznać się z funkcjami usługi Azure Service Bus.