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ę niepowiązanych sekwencji powiązanych komunikatów. Sesje mogą być używane w pierwszym na, pierwszy na wyjęcie (FIFO) i wzorce odpowiedzi żądań . 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. Sesje są obsługiwane w warstwach Standardowa i Premium. Aby uzyskać różnice między tymi warstwami, 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.

Przy użyciu witryny Azure Portal

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

Enable session at the time of the queue creation

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

Enable session at the time of the subscription creation

Korzystanie z interfejsu wiersza polecenia platformy Azure

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

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

Aby utworzyć subskrypcję tematu z włączonymi sesjami komunikatów, użyj az servicebus topic subscription create polecenia 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 New-AzServiceBusQueue polecenia z ustawioną wartością -RequiresSession$True.

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

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

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

Korzystanie z szablonu usługi Azure Resource Manager

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.

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

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).

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

Następne kroki

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

Znajdź przykłady dla starszych bibliotek klienckich .NET i Java poniżej:

30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.

Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.