![](/img/trans.png)
[英]ServiceBus Queue Trigger For Azure Function: Manage claim is required for this operation
[英]Using BrokeredMessage with ServiceBus Queue Trigger in Azure Function
我创建了一个Azure功能 ,只要将新邮件添加到Azure ServiceBus队列,就会触发该功能 。 使用此代码可以正常工作:
#r "Newtonsoft.Json"
#load "..\shared\person.csx"
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
public static void Run(string message, TraceWriter log)
{
var person = JsonConvert.DeserializeObject<Person>(message,
new JsonSerializerSettings() {ContractResolver = new CamelCasePropertyNamesContractResolver()});
log.Verbose($"From DeserializeObject: {person.FirstName} {person.LastName}");
}
我已经看到我也可以将消息绑定到这样的POCO:
public static void Run(Person message, TraceWriter log)
{
log.Verbose($"From DeserializeObject: {message.FirstName} {message.LastName}");
}
现在我想将消息绑定到BrokeredMessage
因为我需要访问消息的属性。
Edit New SDK使用#r directive
支持servicebus sdk
#r "Microsoft.ServiceBus"
using Microsoft.ServiceBus.Messaging;
public static void Run(BrokeredMessage msg, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message: {msg}");
}
旧版本
只有两个步骤:
我创建了一个project.json
文件来添加对WindowsAzure.ServiceBus
Nuget包的引用(参见SO Post ):
{
"frameworks": {
"net46":{
"dependencies": {
"WindowsAzure.ServiceBus": "2.7.6"
}
}
}
}
我添加了对代理消息的引用:
using Microsoft.ServiceBus.Messaging;
public static void Run(BrokeredMessage message, TraceWriter log)
{
log.Verbose("Function has been triggered !!!");
}
我试过托马斯的解决方案,似乎这不再适用了。
文件说明:
此外,以下程序集是特殊的,可以通过simplename引用(例如#r“AssemblyName”):
- ...
- Microsoft.ServiceBus
所以没有触及project.json文件,以下工作:
#r "Microsoft.ServiceBus"
using Microsoft.ServiceBus.Messaging;
public static void Run(BrokeredMessage msg, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message: {msg}");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.