我正在使用 Visual Studio 2017 在本地 Azure Functions v1 中开发服务总线触发器。我想测试example https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus#trigger---c-example来自官方文档,无需在服务总线中添加消息。所以我通过 Postman 在端点 POST 触发它http://localhost:7071/admin/functions/ServiceBusQueueTriggerCSharp 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}");
}
截至目前,如果您希望能够使用这些附加元数据属性,则需要使用真正的服务总线消息。
理论上,管理端点可能足够智能,允许您传递额外的绑定数据(例如本例中的deliveryCount)作为查询参数。我提交了以下功能请求来跟踪:https://github.com/Azure/azure-functions-host/issues/2955 https://github.com/Azure/azure-functions-host/issues/2955
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)