Копировать сообщения между очередями Azure ServiceBus.

Как скопировать сообщения из одной очереди Azure ServiceBus в другую?

У нас есть очередь, содержащая несколько гигабайт сообщений, которые нужно переместить из одной очереди в другую. Как этого можно достичь либо программно с помощью PowerShell или Dotnet, либо с помощью какого-либо инструментария?


person Sean Kearon    schedule 17.02.2021    source источник


Ответы (1)


Может быть, вы можете создать Функция триггера очереди служебной шины Azure, чтобы скопировать сообщение, необходимо добавить привязка вывода очереди служебной шины. Пожалуйста, обратитесь к моему примеру кода:

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

namespace FrankServiceBus
{
    public static class Function1
    {
        [FunctionName("Function1")]
        [return: ServiceBus("<your-queue-out>", Connection = "connectionString")]
        public static String Run([ServiceBusTrigger("<your-queue-in>", Connection = "connectionString")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
            return myQueueItem;
        }
    }
}

Если вы не знакомы с функцией Azure, обратитесь к Начало работы с Функциями Azure.

person Frank Gong    schedule 18.02.2021
comment
Спасибо, Фрэнк, но сообщения уже в очереди. - person Sean Kearon; 18.02.2021
comment
@SeanKearon, вы не хотите копировать сообщения из одной очереди в другую? - person Frank Gong; 18.02.2021
comment
Триггер очереди служебной шины можно активировать сообщением, уже находящимся в очереди, а затем отправить сообщение в другую очередь через выходную привязку (другую очередь). - person Frank Gong; 18.02.2021
comment
Оооооо, спасибо, Фрэнк. Я не понимал, что... это то, чего мы хотим добиться! - person Sean Kearon; 18.02.2021