啟用 Azure 服務匯流排 佇列或訂閱的訊息會話

Azure 服務匯流排會話允許對無界相關訊息序列的聯合且有序處理。 工作階段可用於先進先出 (FIFO) 與要求-回應模式。 如需詳細資訊,請參閱訊息工作階段。 本文說明為 Azure 服務匯流排佇列或訂用帳戶啟用工作階段的不同方式。

這很重要

  • 基本層的 服務匯流排 並不支援會話。 標準層和高階層則支援工作階段。 如需這些階層之間的差異,請參閱服務匯流排定價。
  • 你無法在建立佇列或訂閱後啟用或停用訊息會話。 您只能在建立佇列或訂用帳戶時執行此動作。

使用 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

使用範本

要建立啟用訊息會話的佇列,請在佇列屬性區段設定requiresSession為 。true 欲了解更多資訊,請參閱 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 服務匯流排的功能。