Ativar sessões de mensagens para uma fila do Azure Service Bus ou para uma subscrição

As sessões do Azure Service Bus permitem o tratamento conjunto e ordenado de sequências ilimitadas de mensagens relacionadas. As sessões podem ser utilizadas nos padrões de primeiro a entrar, primeiro a sair (FIFO) e pedido e resposta. Para obter mais informações, consulte Sessões de mensagens. Este artigo mostra-lhe diferentes formas de ativar sessões para uma fila ou subscrição do Service Bus.

Importante

  • O escalão básico do Service Bus não suporta sessões. As camadas padrão e premium suportam sessões. Para conhecer as diferenças entre esses níveis, consulte Preços do Service Bus.
  • Não podes ativar ou desativar sessões de mensagens depois de a fila ou subscrição ser criada. Só pode fazê-lo no momento da criação da fila ou assinatura.

Usando o portal do Azure

Ao criar uma fila no portal Azure, selecione Ativar sessões , como mostrado na imagem seguinte.

Ativar a sessão no momento da criação da fila

Ao criar uma subscrição para um tema no portal Azure, selecione Ativar sessões como mostrado na imagem seguinte.

Ativar a sessão no momento da criação da subscrição

Utilizar a CLI do Azure

Para criar uma fila com sessões de mensagem ativadas, use o az servicebus queue create comando com --enable-session definido para true.

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

Para criar uma subscrição para um tópico com sessões de mensagem ativadas, use o comando az servicebus topic subscription create com --enable-session configurado para true.

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

Utilizar o Azure PowerShell

Para criar uma fila com sessões de mensagem ativadas, use o New-AzServiceBusQueue comando com -RequiresSession definido para $True.

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

Para criar uma subscrição para um tópico com sessões de mensagem ativadas, use o comando New-AzServiceBusSubscription com -RequiresSession configurado para true.

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

Utilização de um modelo

Para criar uma fila com sessões de mensagem ativadas, defina requiresSession para true na secção de propriedades da fila. Para mais informações, consulte a referência do modelo de namespaces/filas do 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
    }
  }
}

Para criar uma subscrição para um tema com sessões de mensagens ativadas, defina requiresSession para true na secção de propriedades da subscrição. Para mais informações, consulte a referência de modelos de namespaces/tópicos/subscrições do 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
      }
    }
  }
}

Próximos passos

Experimente os exemplos no idioma de sua escolha para explorar os recursos do Barramento de Serviço do Azure.