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 服務匯流排的功能。