Включение сеансов сообщений для очереди или подписки в Azure Service Bus

Сеансы служебной шины Azure обеспечивают совместную и упорядоченную обработку несвязанных последовательностей связанных сообщений. Сеансы можно использовать в первым пришёл, первым ушёл (FIFO) и шаблонах запрос-ответ. Дополнительные сведения см. в статье Сеансы обмена сообщениями. В этой статье показаны различные способы включения сеансов для очереди или подписки Service Bus.

Это важно

  • Базовый уровень Службы шины не поддерживает сеансы. Стандартный и премиум-уровни поддерживают сеансы. Различия между этими ценовыми категориями приведены на странице цен на Служебную шину.
  • После создания очереди или подписки невозможно включить или отключить сеансы сообщений. Это можно сделать только во время создания очереди или подписки.

Использование портала Azure

При создании очереди на портале Azure выберите "Включить сеансы ", как показано на следующем рисунке.

Включение сеанса во время создания очереди

При создании подписки для раздела на портале Azure выберите "Включить сеансы ", как показано на следующем рисунке.

Включение сеанса во время создания подписки

Использование Azure CLI

Чтобы создать очередь с включенными сеансами сообщений, используйте az servicebus queue create команду с --enable-session заданным значением true.

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

Чтобы создать подписку для раздела с включенными сеансами сообщений, используйте az servicebus topic subscription create команду с --enable-session заданным значением true.

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

Использование Azure PowerShell

Чтобы создать очередь с включенными сеансами сообщений, используйте New-AzServiceBusQueue команду с -RequiresSession заданным значением $True.

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

Чтобы создать подписку для раздела с включенными сеансами сообщений, используйте New-AzServiceBusSubscription команду с -RequiresSession заданным значением true.

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

Использование шаблона

Чтобы создать очередь с включенными сеансами сообщений, задайте значение requiresSessiontrue в разделе свойств очереди. Для получения дополнительной информации см. справочник по шаблонам пространств имен и очередей 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
    }
  }
}

Чтобы создать подписку для раздела с включенными сеансами сообщений, задайте requiresSession значение true в разделе свойств подписки. Для получения дополнительной информации см. справочник по шаблонам пространств имен 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
      }
    }
  }
}

Дальнейшие шаги

Опробуйте примеры на выбранном языке, чтобы изучить возможности Служебной шины Azure.

Найдите примеры для более старых клиентских библиотек .NET и Java ниже:

30 сентября 2026 г. мы выведем из эксплуатации библиотеки SDK Azure Service Bus: WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus и com.microsoft.azure.servicebus, которые не соответствуют рекомендациям по Azure SDK. Мы также завершим поддержку протокола SBMP, поэтому вы больше не сможете использовать этот протокол после 30 сентября 2026 года. Перейдите в последние библиотеки пакета SDK Azure, которые предлагают критически важные обновления системы безопасности и улучшенные возможности до этой даты.

Хотя старые библиотеки по-прежнему могут использоваться после 30 сентября 2026 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Для получения дополнительной информации см. объявление о прекращении поддержки.