ServiceBusTrigger с аргументом enqueueTimeUtc завершается ошибкой при запуске через конечную точку HTTP - PullRequest
0 голосов
/ 06 июня 2018

Я разрабатываю триггер служебной шины в функциях Azure v1 локально с Visual Studio 2017. Я хочу протестировать пример из официальных документов без необходимости помещать сообщение в служебную шину.Поэтому я запускаю его через Postman в конечной точке POST http://localhost:7071/admin/functions/ServiceBusQueueTriggerCSharp с телом { "input": "foo" }.

. Это происходит с ошибкой хоста скрипта: Исключительная ситуация при выполнении функции: ServiceBusQueueTriggerCSharp.Microsoft.Azure.WebJobs.Host: произошла одна или несколько ошибок.Параметр привязки исключения 'deliveryCount'.Microsoft.Azure.WebJobs.Host: данные привязки не содержат ожидаемого значения «deliveryCount».

Я попытался удалить аргумент deliveryCount, но затем произошел сбой при enqueueTimeUtc.Удаление это тоже работает.Есть ли способ сохранить эти аргументы и проверить функцию локально?

Я понимаю, что эти два аргумента не будут иметь большого смысла при запуске через HTTP, но им могут быть заданы значения по умолчанию.messageId имеет ненулевое значение.

Пример для справки:

[FunctionName("ServiceBusQueueTriggerCSharp")]                    
public static void Run(
    [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")] 
    string myQueueItem,
    Int32 deliveryCount,       // this fails
    DateTime enqueuedTimeUtc,  // this fails too
    string messageId,
    TraceWriter log)
{
    log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    log.Info($"EnqueuedTimeUtc={enqueuedTimeUtc}");
    log.Info($"DeliveryCount={deliveryCount}");
    log.Info($"MessageId={messageId}");
}

1 Ответ

0 голосов
/ 07 июня 2018

На данный момент, если вы хотите работать с этими дополнительными свойствами метаданных, вам нужно использовать реальное сообщение служебной шины.

Теоретически, конечная точка администратора может быть достаточно умнойчтобы позволить вам передавать дополнительные данные привязки (например, deliveryCount в данном случае) в качестве параметров запроса.Я подал следующую заявку на отслеживание: https://github.com/Azure/azure-functions-host/issues/2955

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...