Включение сеансов обмена сообщениями для очереди или подписки служебной шины Azure

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

Важно!

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

Используя портал Azure

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

Enable session at the time of the queue creation

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

Enable session at the time of the subscription creation

Использование 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

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

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

Чтобы создать подписку на тему с включенными сеансами обмена сообщениями, задайте для параметра requiresSession значение true в разделе свойств подписки. Дополнительные сведения см. в справочнике по шаблонам пространств имен, разделов и подписок Microsoft.ServiceBus.

{
  "$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": {
                "requiresSession": true
              }
            }
          ]
        }
      ]
    }
  ]
}

Следующие шаги

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

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

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

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