Habilitación del reenvío automático para las colas y las suscripciones de Azure Service Bus

La característica de reenvío automático de Service Bus permite encadenar una cola o suscripción a otra cola u otro tema que formen parte del mismo espacio de nombres. Cuando el reenvío automático está habilitado, Service Bus elimina automáticamente los mensajes que se colocan en la primera cola o suscripción (origen) y los coloca en la segunda cola o en el segundo tema (destino). Todavía se puede enviar un mensaje a la entidad de destino directamente. Para obtener más información, consulte Encadenamiento de entidades de Service Bus con reenvío automático. En este artículo se muestran las distintas formas de habilitar el reenvío automático para las colas y las suscripciones de Service Bus.

Importante

El nivel básico de Service Bus no admite la característica de reenvío automático. Los niveles Estándar y Prémium admiten la característica. Para conocer las diferencias entre estos niveles, consulte Precios de Service Bus.

Uso de Azure Portal

Al crear una cola o una suscripción para un tema en Azure Portal, seleccione la opción para reenviar mensajes a la cola o el tema, como se muestra en los ejemplos siguientes. A continuación, especifique si desea que los mensajes se reenvíen a una cola o a un tema. En este ejemplo, se elige la opción Cola y se selecciona una cola del mismo espacio de nombres.

Creación de una cola con el reenvío automático habilitado

Enable auto forward at the time of the queue creation

Creación de una suscripción para un tema con el reenvío automático habilitado

Enable auto forward at the time of the subscription creation

Actualización de la configuración de reenvío automático para una cola existente

En la página Información general de la cola de Service Bus, seleccione el valor actual de la opción Reenviar mensajes a. En el ejemplo siguiente, el valor actual es Deshabilitado. En la ventana Reenviar mensajes a cola o tema, puede seleccionar la cola o el tema en el que desea que se reenvíen los mensajes.

Enable auto forward for an existing queue

Actualización de la configuración de reenvío automático para una suscripción existente

En la página Información general de la suscripción de Service Bus, seleccione el valor actual de la opción Reenviar mensajes a. En el ejemplo siguiente, el valor actual es Deshabilitado. En la ventana Reenviar mensajes a cola o tema, puede seleccionar la cola o el tema en el que desea que se reenvíen los mensajes.

Enable auto forward for an existing subscription

Uso de la CLI de Azure

Para crear una cola con el reenvío automático habilitado, use el comando az servicebus queue create con --forward-to establecido en el nombre de la cola o el tema al que desea reenviar los mensajes.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --forward-to myqueue2

Para actualizar la configuración de reenvío automático para una cola existente, use el comando az servicebus queue update con --forward-to establecido en el nombre de la cola o tema al que desea reenviar los mensajes.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --forward-to myqueue2

Para crear una suscripción para un tema con el reenvío automático habilitado, use el comando az servicebus topic subscription create con --forward-to establecido en el nombre de la cola o el tema al que desea reenviar los mensajes.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --forward-to myqueue2

Para actualizar la configuración de reenvío automático para una suscripción para un tema, use el comando az servicebus topic subscription update con --forward-to establecido en el nombre de la cola o tema al que desea reenviar los mensajes.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --forward-to myqueue2

Uso de Azure PowerShell

Para crear una cola con el reenvío automático habilitado, use el comando New-AzServiceBusQueue con -ForwardTo establecido en el nombre de la cola o el tema al que desea reenviar los mensajes.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -ForwardTo myqueue2

Para actualizar la configuración de reenvío automático para una cola existente, use el comando Set-AzServiceBusQueue como se muestra en el ejemplo siguiente.

$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue 

$queue.ForwardTo='myqueue2'

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -QueueObj $queue

Para crear una suscripción para un tema con el reenvío automático habilitado, use el comando New-AzServiceBusSubscription con -ForwardTo establecido en el nombre de la cola o el tema al que desea reenviar los mensajes.

New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysubscription `
    -ForwardTo myqueue2

Para actualizar la configuración de reenvío automático para una suscripción existente, vea el ejemplo siguiente.

$subscription=Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysub

$subscription.ForwardTo='mytopic2'

Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -SubscriptionName mysub `
    -SubscriptionObj $subscription 

Uso de la plantilla de Azure Resource Manager

Para crear una cola con el reenvío automático habilitado, establezca forwardTo, que aparece en la sección de propiedades de la cola, en el nombre de la cola o el tema al que desea reenviar los mensajes. Para obtener más información, consulte el documento de referencia de la plantilla de Microsoft.ServiceBus namespaces/queues.

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

Para crear una suscripción para un tema con el reenvío automático habilitado, establezca forwardTo, que aparece en la sección de propiedades de la cola, en el nombre de la cola o el tema al que desea reenviar los mensajes. Para obtener más información, consulte el documento de referencia de la plantilla de Microsoft.ServiceBus/namespaces/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": {
                "forwardTo": "myqueue2"
              }
            }
          ]
        }
      ]
    }
  ]
}

.NET

Azure.Messaging.ServiceBus (más reciente)

Para habilitar la característica de reenvío automático, puede establecer CreateQueueOptions.ForwardTo o CreateSubscriptionOptions.ForwardTo y, a continuación, usar los métodos CreateQueueAsync o CreateSubscriptionAsync que toman parámetros CreateQueueOptions o CreateSubscriptionOptions.

Microsoft.Azure.ServiceBus (heredado)

Para habilitar el reenvío automático, establezca las propiedades QueueDescription.ForwardTo o SubscriptionDescription.ForwardTo para el origen, como en este ejemplo:

SubscriptionDescription srcSubscription = new SubscriptionDescription (srcTopic, srcSubscriptionName);
srcSubscription.ForwardTo = destTopic;
namespaceManager.CreateSubscription(srcSubscription));

El 30 de septiembre de 2026, retiraremos las bibliotecas del SDK de Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus y com.microsoft.azure.servicebus, que no se ajustan a las directrices del SDK de Azure. También finalizaremos la compatibilidad con el protocolo SBMP, por lo que ya no podrá usar este protocolo después del 30 de septiembre de 2026. Migre a las bibliotecas más recientes del SDK de Azure, que ofrecen actualizaciones de seguridad críticas y funcionalidades mejoradas, antes de esa fecha.

Aunque las bibliotecas anteriores todavía se pueden usar después del 30 de septiembre de 2026, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.

Java

azure-messaging-servicebus (más reciente)

Puede habilitar la característica de reenvío automático mediante el método CreateQueueOptions.setForwardTo(String forwardTo) o CreateSubscriptionOptions.setForwardTo(String forwardTo) y, a continuación, mediante el método createQueue o el método createSubscription que toman los parámetros CreateQueueOptions o CreateSubscriptionOptions.

azure-servicebus (heredado)

Puede habilitar el reenvío automático mediante QueueDescription.setForwardTo(String forwardTo) o SubscriptionDescription.setForwardTo(String forwardTo) para el origen.

El 30 de septiembre de 2026, retiraremos las bibliotecas del SDK de Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus y com.microsoft.azure.servicebus, que no se ajustan a las directrices del SDK de Azure. También finalizaremos la compatibilidad con el protocolo SBMP, por lo que ya no podrá usar este protocolo después del 30 de septiembre de 2026. Migre a las bibliotecas más recientes del SDK de Azure, que ofrecen actualizaciones de seguridad críticas y funcionalidades mejoradas, antes de esa fecha.

Aunque las bibliotecas anteriores todavía se pueden usar después del 30 de septiembre de 2026, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.

Pasos siguientes

Pruebe los ejemplos en el lenguaje que prefiera para explorar las características de Azure Service Bus.

A continuación, encontrará ejemplos de las bibliotecas cliente de .NET y Java anteriores:

El 30 de septiembre de 2026, retiraremos las bibliotecas del SDK de Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus y com.microsoft.azure.servicebus, que no se ajustan a las directrices del SDK de Azure. También finalizaremos la compatibilidad con el protocolo SBMP, por lo que ya no podrá usar este protocolo después del 30 de septiembre de 2026. Migre a las bibliotecas más recientes del SDK de Azure, que ofrecen actualizaciones de seguridad críticas y funcionalidades mejoradas, antes de esa fecha.

Aunque las bibliotecas anteriores todavía se pueden usar después del 30 de septiembre de 2026, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.