Azure Service Bus 큐 및 구독에 대해 자동 전달을 사용하도록 설정

Service Bus 자동 전달 기능을 통해 동일한 네임스페이스의 일부인 다른 큐 또는 토픽에 큐 또는 구독을 연결할 수 있습니다. 자동 전달을 사용하도록 설정하면 Service Bus가 자동으로 첫 번째 큐 또는 구독(원본)에 있는 메시지를 제거하고 두 번째 큐 또는 토픽(대상)에 넣습니다. 대상 엔터티에 직접 메시지를 보내는 것은 여전히 가능합니다. 자세한 내용은 자동 전달을 사용한 Service Bus 엔터티 연결을 참조하세요. 이 문서에서는 Service Bus 큐 및 구독에 대해 자동 전달을 사용하도록 설정하는 다양한 방법을 보여 줍니다.

Important

Service Bus의 기본 계층은 자동 전달 기능을 지원하지 않습니다. 표준 및 프리미엄 계층은 이 기능을 지원합니다. 이러한 계층 간의 차이점은 Service Bus 가격 책정을 참조하세요.

Azure Portal 사용

Azure Portal의 토픽에 대해 또는 구독을 만들 때 다음 예에서 보는 것처럼 큐/토픽으로 메시지 전달을 선택합니다. 그런 다음 메시지를 큐 또는 토픽으로 전달할 것인지 지정합니다. 이 예제에서는 옵션이 선택되고 동일한 네임스페이스에서 큐가 선택됩니다.

자동 전달이 사용하도록 설정된 큐 만들기

큐를 만드는 시점에 자동 전달을 사용하도록 설정

자동 전달이 사용하도록 설정된 토픽에 대해 구독 만들기

구독을 만들 때 자동 전달 사용

기존 큐에 대한 자동 전달 설정 업데이트

Service Bus 큐의 개요 페이지에서 메시지 전달 대상 설정의 현재 값을 선택합니다. 다음 예에서 현재 값은 사용 안 함입니다. 큐/토픽에 메시지 전달 창에서 메시지를 전달할 큐 또는 토픽을 선택할 수 있습니다.

기존 큐에 자동 전달 사용

기존 구독에 대한 자동 전달 설정 업데이트

Service Bus 구독의 개요 페이지에서 메시지 전달 대상 설정의 현재 값을 선택합니다. 다음 예에서 현재 값은 사용 안 함입니다. 큐/토픽에 메시지 전달 창에서 메시지를 전달할 큐 또는 토픽을 선택할 수 있습니다.

기존 구독에 자동 전달 사용

Azure CLI 사용

자동 전달이 사용하도록 설정된 큐를 만들려면 --forward-to를 메시지가 전달되기를 원하는 큐 또는 토픽의 이름으로 설정한 az servicebus queue create 명령을 사용합니다.

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

기존 큐에 대한 자동 전달 설정을 업데이트하려면 --forward-to가 메시지를 전달하려는 큐 또는 토픽의 이름으로 설정된 az servicebus queue update 명령을 사용합니다.

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

자동 전달이 사용하도록 설정된 토픽에 대한 구독을 만들려면 --forward-to가 메시지를 전달하려는 큐 또는 토픽의 이름으로 설정된 az servicebus topic subscription create 명령을 사용합니다.

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

토픽에 구독에 대한 자동 전달 설정을 업데이트하려면 --forward-to가 메시지를 전달하려는 큐 또는 토픽의 이름으로 설정된 az servicebus topic subscription update 명령을 사용합니다.

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

Azure PowerShell 사용

자동 전달이 사용하도록 설정된 큐를 만들려면 -ForwardTo를 메시지가 전달되기를 원하는 큐 또는 토픽의 이름으로 설정한 New-AzServiceBusQueue 명령을 사용합니다.

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

기존 큐에 대한 자동 전달 설정을 업데이트하려면 다음 예제와 같이 Set-AzServiceBusQueue 명령을 사용합니다.

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name myqueue `
    -ForwardTo myqueue2

자동 전달이 사용하도록 설정된 토픽에 대해 구독을 만들려면 -ForwardTo를 메시지가 전달되기를 원하는 큐 또는 토픽의 이름으로 설정한 New-AzServiceBusSubscription 명령을 사용합니다.

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

기존 구독에 대한 자동 전달 설정을 업데이트하려면 다음 예제를 참조하세요.

Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -Name mysub `
    -ForwardTo mytopic2 

Azure Resource Manager 템플릿 사용

자동 전달이 사용하도록 설정된 큐를 만들려면 큐 속성 섹션의 forwardTo를 메시지가 전달되기를 원하는 큐 또는 토픽의 이름으로 설정합니다. 자세한 내용은 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"
          }
        }
      ]
    }
  ]
}

자동 전달이 사용하도록 설정된 큐에 대해 구독을 만들려면 큐 속성 섹션의 forwardTo를 메시지가 전달되기를 원하는 큐 또는 토픽의 이름으로 설정합니다. 자세한 정보는 Microsoft.ServiceBus 네임스페이스/토픽/구독 템플릿 참조에서 알아보세요.

{
  "$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(최신)

CreateQueueOptions.ForwardTo 또는 CreateSubscriptionOptions.ForwardTo를 설정한 다음, CreateQueueOptions 또는 CreateSubscriptionOptions 매개 변수를 사용하는 CreateQueueAsync 또는 CreateSubscriptionAsync 메서드를 사용하여 자동 전달 기능을 사용하도록 설정할 수 있습니다.

Microsoft.Azure.ServiceBus(레거시)

다음 예제와 같이 원본에 대해 QueueDescription.ForwardTo 또는 SubscriptionDescription.ForwardTo를 설정하여 자동 전달을 사용하도록 설정할 수 있습니다.

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

2026년 9월 30일에 Azure SDK 지침을 따르지 않는 Azure Service Bus SDK 라이브러리 WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus 및 com.microsoft.azure.servicebus를 사용 중지합니다. 또한 SBMP 프로토콜에 대한 지원이 종료되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 마이그레이션에 중요한 보안 업데이트와 개선된 기능을 제공하는 최신 Azure SDK 라이브러리로 마이그레이션합니다.

이전 라이브러리는 2026년 9월 30일 이후에도 계속 사용할 수 있지만 더 이상 Microsoft로부터 공식 지원 및 업데이트를 받을 수 없습니다. 자세한 내용은 사용 중지 공지 지원을 참조하세요.

Java

azure-messaging-servicebus(최신)

CreateQueueOptions.setForwardTo(String forwardTo) 메서드 또는 CreateSubscriptionOptions.setForwardTo(String forwardTo)를 사용한 다음, CreateQueueOptions 또는 CreateSubscriptionOptions 매개 변수를 사용하는 createQueue 메서드 또는 createSubscription 메서드를 사용하여 자동 전달 기능을 사용하도록 설정할 수 있습니다.

azure-servicebus(레거시)

원본에 대해 QueueDescription.setForwardTo(String forwardTo) 또는 SubscriptionDescription.setForwardTo(String forwardTo)를 사용하여 자동 전달을 사용하도록 설정할 수 있습니다.

2026년 9월 30일에 Azure SDK 지침을 따르지 않는 Azure Service Bus SDK 라이브러리 WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus 및 com.microsoft.azure.servicebus를 사용 중지합니다. 또한 SBMP 프로토콜에 대한 지원이 종료되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 마이그레이션에 중요한 보안 업데이트와 개선된 기능을 제공하는 최신 Azure SDK 라이브러리로 마이그레이션합니다.

이전 라이브러리는 2026년 9월 30일 이후에도 계속 사용할 수 있지만 더 이상 Microsoft로부터 공식 지원 및 업데이트를 받을 수 없습니다. 자세한 내용은 사용 중지 공지 지원을 참조하세요.

다음 단계

선택한 언어로 샘플을 사용하여 Azure Service Bus 기능을 살펴봅니다.

이전 .NET 및 Java 클라이언트 라이브러리에 대한 샘플을 찾습니다.

2026년 9월 30일에 Azure SDK 지침을 따르지 않는 Azure Service Bus SDK 라이브러리 WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus 및 com.microsoft.azure.servicebus를 사용 중지합니다. 또한 SBMP 프로토콜에 대한 지원이 종료되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 마이그레이션에 중요한 보안 업데이트와 개선된 기능을 제공하는 최신 Azure SDK 라이브러리로 마이그레이션합니다.

이전 라이브러리는 2026년 9월 30일 이후에도 계속 사용할 수 있지만 더 이상 Microsoft로부터 공식 지원 및 업데이트를 받을 수 없습니다. 자세한 내용은 사용 중지 공지 지원을 참조하세요.