我设置了几个主题来处理当前正在开发的系统的新功能应用程序,每次尝试启动时都会出现故障错误。
函数运行时无法启动。请检查 运行时记录任何错误或稍后再试。 Microsoft.ServiceBus:远程服务器返回错误: (401)未经授权。声称是空的。 TrackingId:b221222c- df39-4abb-8af7-8afd880fd363_G8,SystemTracker:giftie- production.servicebus.windows.net:out-smtp, 时间戳:1/19/2018 1:52:12 AM。系统:遥控器 服务器返回错误:(401)未经授权。 会议ID:547e23d54eca44fcb2503bf88d8cb05e 时间戳:2018-01-19T01:52:31.245Z
我已经检查了所有共享访问策略,这发生在两个主题的每个订阅上。我有一个单独的功能应用程序,从不同的主题运行,似乎工作正常。 我尝试删除并重新创建访问策略(并更新AppSettings中的连接字符串)并删除并重新创建订阅。
我认为function.json
看起来还不错 - 这是一个示例:
{
"bindings": [
{
"type": "serviceBusTrigger",
"connection": "SB-out-smtp-listener",
"topicName": "out-smtp",
"subscriptionName": "smtp-sendgrid",
"access": "manage",
"direction": "in",
"name": "jsonMessage"
}
],
"disabled": false,
"scriptFile": "..\\bin\\notifications.hellogiftie.com.dll",
"entryPoint": "notifications.hellogiftie.com.ApiServiceBus.SbSmtpSendgrid.Run"
}
我现在很困惑,对任何想法都会感激不尽!
答案 0 :(得分:1)
我设法通过完全重新生成我的函数应用程序项目,并将所有内容放回其中,删除Azure上的函数应用程序以及重新发布来解决此问题。 即便如此,我在ServiceBusTrigger属性中放置的内容与Integrate屏幕上显示的内容之间也存在不匹配(尽管function.json看起来正确)。 我在属性中有Listen权限,但出现了有关管理权限的错误。整合屏幕说我要求管理权限,在纠正之后,一切都开始起作用了。
我想可能有一些关于ServiceBusTrigger属性的有趣内容:
collection.find({ $or : [{"name" : {"$regex" : "foo_.*" }},
{"name" : {"$regex" : "bar_.*" }}] })
Intellisense似乎告诉我,有一个功能签名选项,它有2个访问权限参数,但描述了一个"客户端对主题"中的订阅的访问权限。和另一个"获取客户端对队列或主题订阅的访问权限"。
答案 1 :(得分:0)
默认情况下,ServiceBusTrigger属性上的访问权限设置为“Manage”。 Here's源代码,如果你想进一步深入挖掘!